본문 바로가기
카테고리 없음

프로그래머스 340213번

by SayHiWorld 2024. 9. 29.
def solution(video_len, pos, op_start, op_end, commands):
    # 각 시간 문자열을 초 단위로 변환
    def time_to_seconds(time_str):
        minutes, seconds = map(int, time_str.split(':'))
        return minutes * 60 + seconds

    video_len_sec = time_to_seconds(video_len)
    pos_sec = time_to_seconds(pos)
    op_start_sec = time_to_seconds(op_start)
    op_end_sec = time_to_seconds(op_end)

    # 명령어 처리
    for command in commands:
        if op_start_sec <= pos_sec <= op_end_sec:
                pos_sec = op_end_sec
                
        if command == "next":
            if video_len_sec - pos_sec > 10:
                pos_sec += 10
            else:
                pos_sec = video_len_sec

        elif command == "prev":
            if pos_sec > 10:
                pos_sec -= 10
            else:
                pos_sec = 0
        
        if op_start_sec <= pos_sec <= op_end_sec:
                pos_sec = op_end_sec

    # 결과를 "MM:SS" 형식으로 변환
    pos_sec_min = pos_sec // 60
    pos_sec = pos_sec % 60
    answer = f"{pos_sec_min:02}:{pos_sec:02}"

    return answer

 

1. 반복되는 로직이 있다면 함수 하나를 따로 만들어서 수행하게 한다. 

 

2. 문제 이해가 완벽히 된 것 같은 느낌을 받더라도 꼭 주어진 예시들이 어떻게 동작하고 있는지 확인한다.