풀이
우선, 문제에서 시간이 들어있는 문자열을 파싱 하여 전부 밀리 초로 바꾸어 시작시간과 끝나는 시간을 각각 리스트에 저장했습니다.
그다음으로 1초(1000밀리 초) 단위로 트래픽을 검사하고 끝 시간은 포함해야 하기 때문에 각 로그의 시작시간에서 999밀리 초를 빼주어 검사하고자 하는 범위를 구했습니다.
다음으로 각 로그별 시간이 범위에 포함된다면 카운트 값을 +1 하여 1초 단위의 트래픽 개수를 구하였고 그중 최대 개수의 트래픽을 구해야 하므로 max 함수를 이용하여 각 범위별 최댓값을 갱신하게 하여 해결했습니다.
코드
def solution(lines):
answer = 0
start_times = list()
end_times = list()
for line in lines:
logs = line.split(" ")
time = logs[1].split(":")
process_time = float(logs[2][:-1]) * 1000 - 1
end = (int(time[0]) * 60 * 60 * 1000) + (int(time[1]) * 60 * 1000) + (float(time[2]) * 1000)
end_times.append(end)
start = end - process_time
start_times.append(start)
for i in range(len(start_times)):
cnt = 0
start_range = start_times[i] - 999
for j in range(len(start_times)):
if start_range <= start_times[j] <= start_times[i]:
cnt += 1
elif start_times[j] <= start_range <= end_times[j]:
cnt += 1
answer = max(answer, cnt)
return answer
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[Python] 프로그래머스 셔틀버스 (0) | 2021.05.16 |
---|---|
[Python] 프로그래머스 보석 쇼핑 (0) | 2021.05.10 |
[Python] 프로그래머스 n진수 게임 (0) | 2021.05.01 |
[Python] 프로그래머스 파일명 정렬 (0) | 2021.04.25 |
[Python] 프로그래머스 압축 (0) | 2021.04.25 |