코테풀이/프로그래머스

[PCCP 기출문제] 1번 / 동영상 재생기

miimu 2025. 5. 12. 15:45

https://school.programmers.co.kr/learn/courses/30/lessons/340213

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

def solution(video_len, pos, op_start, op_end, commands):
    v_min, v_sec = [int(i) for i in video_len.split(':')]
    pos_min, pos_sec = [int(i) for i in pos.split(':')]
    ope_min, ope_sec = [int(i) for i in op_end.split(':')]
    for command in commands :
        # 오프닝 건너뛰기
        str_pos = str(pos_min).zfill(2) + ":" + str(pos_sec).zfill(2)
        if op_start <= str_pos and str_pos < op_end :
            pos_min, pos_sec = ope_min, ope_sec
            
        if command == "prev" :
            # 10초 미만이면 0분 0초
            if pos_min == 0 and pos_sec < 10 :
                pos_min, pos_sec = 0, 0
            # prev 후 시간 계산
            else :
                pos_sec -= 10
                if pos_sec < 0 :
                    pos_min -= 1
                    pos_sec = pos_sec + 60
            
        elif command == "next" :
            pos_sec += 10
            if pos_sec > 60 :
                pos_sec -= 60
                pos_min += 1
            # video_len 넘을 경우 video_len으로 설정
            if pos_min >= v_min and pos_sec >= v_sec :
                pos_min = v_min
                pos_sec = v_sec
                
        # 오프닝 건너뛰기
        str_pos = str(pos_min).zfill(2) + ":" + str(pos_sec).zfill(2)
        if op_start <= str_pos and str_pos < op_end :
            pos_min, pos_sec = ope_min, ope_sec
        
            
    answer = str(pos_min).zfill(2) + ":" + str(pos_sec).zfill(2)
    return answer

 


아이디어

  1. 오프닝 건너뛰기는 스트링 비교로 간단하게
  2. prev와 next는 분, 초별로 나누어 계산

'코테풀이 > 프로그래머스' 카테고리의 다른 글

[LV. 1] 유연근무제  (0) 2025.05.10
[LV. 1] 택배 상자 꺼내기  (1) 2025.05.10