[Programmers] 추석 트래픽 문제 풀이 (Python)
Updated:
1. 문제 풀이
로그 데이터의 초당 최대 처리량을 계산하는 문제이다.
다음의 과정을 거쳐 문제를 해결하였다.
- 모든 시간을 ms 단위로 변경한다.
- 예를 들어 1초라면 1000으로 변경
- dictionary를 이용하여 각 시간당 처리한 log의 수를 체크한다.
- key: 시간(ms), value: 시간당 처리한 log의 수
- 예를 들어, 어떤 log가 10000ms ~ 11000ms까지라면 10000 ~ 11999까지 각 시간당 처리한 log의 수를 1씩 더한다.
- 11001 ~ 11999까지 추가되는 이유는 초당 최대 처리량을 계산하는 것이기 때문에 해당 log가 11999 시간까지 포함되기 때문이다.
2. 코드
from collections import defaultdict
def solution(lines):
count = defaultdict(int)
for line in lines:
_, t, interval = line.split()
h, m, s = t.split(":")
end_time = int(float(h) * 60 * 60 * 1000 + float(m) * 60 * 1000 + float(s) * 1000)
interval = int(float(interval[:-1]) * 1000)
for t in range(end_time-interval+1, end_time+1):
count[t] += 1
for t in range(end_time+1, end_time+1000):
count[t] += 1
return max(count.values())
Leave a comment