
풀이 방법
문제가 뭔가 길긴 한데 그냥 귀찮은 문제입니다. 어렵진 않아요. map과 split을 사용할 수 있고 예외 케이스만 잘 막아주면 무난하게 풀리는 문제입니다.
def solution(video_len, pos, op_start, op_end, commands):
# 문자열을 초로 변환
def to_sec(t):
m, s = map(int, t.split(":"))
return m * 60 + s
# 초를 문자열로 변환
def to_str(sec):
m = sec // 60
s = sec % 60
if m < 10:
m = f'0{m}'
if s < 10:
s = f'0{s}'
return f"{m}:{s}"
video = to_sec(video_len)
now = to_sec(pos)
os_ = to_sec(op_start)
oe_ = to_sec(op_end)
# 커맨드 실행
for cmd in commands:
# 오프닝에 걸쳐 있으면 점프
if os_ <= now <= oe_:
now = oe_
if cmd == "next":
now += 10
else: # "prev"
now -= 10
# 0보다 작으면 0으로 보정
if now < 0:
now = 0
# 영상 길이 초과하면 끝으로 고정
if now > video:
now = video
# 마지막 위치도 오프닝 구간에 걸치면 엔딩 시점으로
if os_ <= now <= oe_:
now = oe_
# 영상 끝을 넘기면
if now >= video:
return video_len
return to_str(now)반응형
'프로그래머스 - Python > Level 1' 카테고리의 다른 글
| [Python LV.1] 체육복 (0) | 2026.01.20 |
|---|---|
| [2021 KAKAO BLIND RECRUITMENT] 신규 아이디 추천 (0) | 2025.10.23 |
| [PCCE 기출 문제] 지폐 접기 파이썬 풀이 (0) | 2025.10.05 |
| 자릿수 문제 (0) | 2025.06.01 |