Javscript ) 프로그래머스 - [PCCP 기출문제] 1번 / 동영상 재생기
function solution(
                    video_len, // 동영상길이
                    pos, // 직전 재생위치
                    op_start, // 오프닝 시작 시간
                    op_end, // 오프닝 끝나는 시간
                    commands // 사용자의 입력
                 ) {
    // 시간 > 초 변경 / 리턴 - 초
    const transTime = (time) => {
        const [m, s] = time.split(':');
        return m * 60 + s * 1;
    }
    // 초 > 시간 변경 / 리턴 - 시간
    const secToTime = (second) => {
        const m = parseInt(second / 60);
        const s = second % 60;
        return String(m).padStart(2,0) + ':' + String(s).padStart(2,0);
    }
    // 오프닝 여부 체크 / 리턴 - 시간
    const opCheck = (time) => {
        if (transTime(op_start) <= transTime(time) && transTime(time) <= transTime(op_end)) return op_end
        else return time
    }
    // 이전으로 이동 / 리턴 - 초
    const goPrev = (time) => {
        return transTime(time) - 10 < 0 ? 0 : transTime(time) - 10;
    }
    // 다음으로 이동 / 리턴 - 초
    const goNext = (time) => {
        return transTime(time) + 10 > transTime(video_len) ? transTime(video_len) : transTime(time) + 10;
    }
    
    let time = pos;
    for (let co of commands) {
        time = opCheck(time) // 처음에도 오프닝 여부 체크
        if (co === 'prev') time = secToTime(goPrev(time))
        else time = secToTime(goNext(time))
        time = opCheck(time)
    }
    
    return time;
}

 

반응형