1. 내가 작성한 코드

def solution(video_len, pos, op_start, op_end, commands):
    answer = ''
    
    if (pos >= op_start) and pos <= op_end:
        pos = op_end

    #pos 쪼개기
    split_pos = pos.split(':')
    min = int(split_pos[0])
    sec = int(split_pos[1])
    # 비디오 전체 시간 쪼개기
    split_video_len = video_len.split(':')
    video_min = int(split_video_len[0])
    video_sec = int(split_video_len[1])
    
    #이동한 위치가 오프닝 구간이면 오프닝이 끝나는 위치로 이동
    if answer >= op_start and answer <= op_end:
        answer = op_end
    for i in commands:  
        if i == "next":
            sec += 10
            if sec  >= 60:
                min += 1
                sec -= 60
            if min == video_min and (video_sec - sec) < 10:
                answer = video_len
                
        elif i == "prev":
            sec -= 10
            #min이 음수인 경우 
            if min == 0 and sec <= 0:
                sec = 0
            if sec < 0:
                min -= 1
                sec -= 60
                
        if answer >= op_start and answer <= op_end:
            answer = op_end

    min = str(f"{min:02d}")
    sec = str(f"{sec:02d}")

    answer = min + ":" + sec

    #이동한 위치가 오프닝 구간이면 오프닝이 끝나는 위치로 이동
    if answer >= op_start and answer <= op_end:
        answer = op_end
        
    #next한 영상의 범위가 동영상 범위를 벗어날 경우
    if answer >= video_len:
        answer = video_len
        
        
    return answer

테스트 케이스 몇개가 틀려서 정확성 50나옴 ㅠㅠ

어디서 틀린건지 잘 모르겠음

2. 핵심 아이디어

3. 보완할 점

def solution(video_len, pos, op_start, op_end, commands):
    def time_to_seconds(time_str):
        mm, ss = map(int, time_str.split(':'))
        return mm * 60 + ss

    def seconds_to_time(seconds):
        mm = seconds // 60
        ss = seconds % 60
        return f"{mm:02d}:{ss:02d}"

    # 시간을 초 단위로 변환
    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)

    # 오프닝 구간 체크
    if op_start_sec <= pos_sec <= op_end_sec:
        pos_sec = op_end_sec

    # 명령어 처리
    for command in commands:
        if command == "next":
            pos_sec += 10
            if pos_sec > video_len_sec:
                pos_sec = video_len_sec
        elif command == "prev":
            pos_sec -= 10
            if pos_sec < 0:
                pos_sec = 0

        # 명령 실행 후 오프닝 구간 체크
        if op_start_sec <= pos_sec <= op_end_sec:
            pos_sec = op_end_sec

    # 결과를 다시 "mm:ss" 형식으로 변환
    return seconds_to_time(pos_sec)