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
아이디어
- 오프닝 건너뛰기는 스트링 비교로 간단하게
- prev와 next는 분, 초별로 나누어 계산
'코테풀이 > 프로그래머스' 카테고리의 다른 글
| [LV. 1] 유연근무제 (0) | 2025.05.10 |
|---|---|
| [LV. 1] 택배 상자 꺼내기 (1) | 2025.05.10 |