동영상 재생기
문자열 앞에 "0"값을 채우는 함수는 string_number.zfill(n)
0이 아니라 다른 것으로 채우고 싶다면 string_number.rjust(n, "a")
format도 있지만 외우지는 말자
내 풀이
def solution(video_len, pos, op_start, op_end, commands):
def trim(val):
mn, sc = val.split(':')
return int(mn)*60 + int(sc)
video_len = trim(video_len)
pos = trim(pos)
op_start = trim(op_start)
op_end = trim(op_end)
if op_start <= pos < op_end: pos = op_end
for com in commands:
if com == 'prev': pos = max(pos-10, 0)
elif com == 'next': pos = min(pos+10, video_len)
if op_start <= pos < op_end: pos = op_end
return str(pos//60).zfill(2) + ':' + str(pos%60).zfill(2)
퍼즐 게임 챌린지
이분탐색이 주요했던 문제. 보자마자 눈치는 챘고, 모든 숙련도는 양의 정수라고 강조한 걸 보고 확실해졌다.
내 풀이
def solution(diffs, times, limit):
def valid_time(level):
time = 0
for i in range(len(diffs)):
if diffs[i] > level:
if i: time += (diffs[i]-level) * times[i-1]
time += (diffs[i]-level) * times[i]
time += times[i]
return time <= limit
i, j = 1, 100000
while i < j:
mid = (i+j)//2
if valid_time(mid): j = mid
else: i = mid+1
return i
충돌위험 찾기
12/23 에 도전했으나, 1시간여 풀고 포기,
그러나 답안 안 보고 12/24에 재도전.
'알고리즘 문제풀이' 카테고리의 다른 글
[알고리즘] 실습용 로봇, 석유 시추, 보물 지도 (0) | 2024.12.22 |
---|