[KAKAO PS] 추석 트래픽

Problem

이번 추석에도 시스템 장애가 없는 명절을 보내고 싶은 어피치는 서버를 증설해야 할지 고민이다. 장애 대비용 서버 증설 여부를 결정하기 위해 작년 추석 기간인 9월 15일 로그 데이터를 분석한 후 초당 최대 처리량을 계산해보기로 했다. 초당 최대 처리량은 요청의 응답 완료 여부에 관계없이 임의 시간부터 1초(=1,000밀리초)간 처리하는 요청의 최대 개수를 의미한다.

Solution

Code

import datetime
def solution(lines):
    dates = []
    for line in lines:
        line_s = line.split()
        day_time_str = " ".join(line_s[:-1])
        seconds_val = float(line_s[-1][:-1])
        
        end_p = datetime.datetime.strptime(day_time_str, '%Y-%m-%d %H:%M:%S.%f')
        start_p = end_p - datetime.timedelta(seconds = seconds_val+0.999)
        dates.append({ 'end' : end_p, 'start' : start_p })
        
    sorted_dates = sorted(dates, key=lambda x: x['start'])
    answer = 0
    result = []
    for date in sorted_dates:
        result = [ endtime for endtime in result if endtime > str(date['start'])]
        result.append(str(date['end']))
        answer = max([answer, len(result)])
    return answer

Reference

https://programmers.co.kr/learn/courses/30/lessons/17676?language=python3