기술 블로그

[프로그래머스] 동영상 재생기 본문

알고리즘

[프로그래머스] 동영상 재생기

jaegwan 2024. 11. 30. 12:29
반응형
function converter(str){
    const time = str.split(":").map(Number)
    const calTime = time[0]*60 + time[1]
    return calTime
}

function solution(video_len, pos, op_start, op_end, commands) {
    var answer = '';
    const inputs = [video_len, pos,op_start,op_end]
    const [calLen, calPos, calOpStart, calOpEnd] = inputs.map((data)=>converter(data))
    
       let result = calPos
    
    function next(time){
        return time+10
    }
    
    function prev(time){
        return time-10
    }
    function passOp(time){
        if(calOpStart <= time && time <= calOpEnd){
            return calOpEnd
        }else{
            return time
        }
    }
    
    for(let i of commands){
        result = passOp(result)
        if(i ==="next"){
            result = next(result)
             if(calLen<result){
                result = calLen
             }
        }else if(i ==="prev"){
            result = prev(result)
            if(result<0){
                result = 0
            }
        }
        result = passOp(result)
        
    }
    
    const mm = Math.floor(result/60)
    const ss = result%60
    
    const mmString = mm < 10 ? '0'+mm : mm
    const ssString = ss < 10 ? '0'+ss : ss
    
    answer = mmString+":"+ssString
    
    return answer;
}

 

 

배운 점

- 시간 관련 연산을 할 때 분으로 통일하는 것이 편하다.

 

 

보완할 점

- str.padStart(len,replaceText) 를 활용하자

    - https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/padStart

반응형

'알고리즘' 카테고리의 다른 글

js heapq  (0) 2023.11.14
[JS] 알고리즘을 위한 js - 2 문자열과 순회문  (0) 2023.11.13
[JS] 알고리즘을 위한 js - 1 배열  (0) 2023.11.13
[프로그래머스] 조이스틱  (0) 2023.11.01
프로그래머스 체육복  (0) 2023.10.26
Comments