Updated:

1. 문제 풀이

로그 데이터의 초당 최대 처리량을 계산하는 문제이다.

다음의 과정을 거쳐 문제를 해결하였다.

  1. 모든 시간을 ms 단위로 변경한다.
    • 예를 들어 1초라면 1000으로 변경
  2. 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