JH 개발 블로그
2021 카카오 코딩테스트 lv.3 광고 삽입 파이썬 본문
def time_to_sec(time): #hh:mm:ss를 초로 바꿔줍니다
time = list(map(int, time.split(':')))
return 3600 * time[0] + 60 * time[1] + time[2]
def solution(play_time, adv_time, logs):
play_time = time_to_sec(play_time) # 초 변환
adv_time = time_to_sec(adv_time) # 초 변환
viewrs = [0] * (play_time + 1)
for log in logs:
section = log.split('-')
start, end = time_to_sec(section[0]), time_to_sec(section[1])
viewrs[start] += 1 # start 시점에 시청자 한명을 추가해줍니다
viewrs[end] -= 1 # end 시점에 시청자 한명을 빼줍니다
for i in range(1, play_time + 1):
viewers[i] += viewers[i - 1] # viewers[i] = i ~ i+1초 구간의 시청자 수
for i in range(1, play_time + 1):
viewers[i] += viewers[i - 1] # viewers[i] = 0 ~ i+1초 구간의 누적 시청자 수
max_viewrs = viewrs[adv_time - 1] # 0 ~ adv_time초 구간의 누적 시청자 수
sec = 0 # 현재 초
for i in range(1, play_time - adv_time + 1):
if max_viewrs < viewrs[i+adv_time-1] - viewrs[i-1]
max_viewrs = viewrs[i+adv_time-1] - viewrs[i-1] # i ~ i+adv_time초 구간 시청자 수
sec = i # 현재 초
h = str(sec//3600).zfill(2)
m = str((sec%3600)//60).zfill(2)
s = str(sec%60).zfill(2)
return h+':'+m+':'+s
'코딩테스트 > 2021 KAKAO BLIND RECRUITMENT' 카테고리의 다른 글
2021 카카오 코딩테스트 lv.4 매출 하락 최소화 파이썬 (0) | 2022.01.29 |
---|---|
2021 카카오 코딩테스트 lv.3 카드 짝 맞추기 파이썬 (0) | 2022.01.26 |
2021 카카오 코딩테스트 lv.3 합승 택시 요금 파이썬 (0) | 2022.01.24 |
2021 카카오 코딩테스트 lv2. 순위 검색 파이썬 (0) | 2022.01.24 |
2021 카카오 코딩테스트 lv2. 메뉴 리뉴얼 파이썬 (0) | 2022.01.24 |
Comments