[programmers] 추석 트래픽

데린이·2022년 4월 22일
0

트랙픽량 산출
https://programmers.co.kr/learn/courses/30/lessons/17676

Tip.
1. 윈도우 형식으로 풀지 말 것

22-05-08

import datetime


def solution(lines):
    
    #1
    time = []
    for line in lines:
        date, end, duration = line.split(" ")
        end = datetime.datetime.strptime(date+" "+end,"%Y-%m-%d %H:%M:%S.%f")
        duration = float(duration.split("s")[0])
        start = end - datetime.timedelta(seconds = duration - 0.001)
        time.append([start,end,duration])
    #2
    time = sorted(time)

    answer, proceeding = 1, [time[0]]
    for new in time[1:]:
        case = 1
        if proceeding:
        	#3
            for pcd in proceeding:
            	#3-1
                if pcd[1] > new[0] - datetime.timedelta(seconds = 1):
                    case += 1
                #3-2
                else:
                    proceeding.remove(pcd)
        answer = max(answer,case)
        #4
        proceeding.append(new)

    return answer 
  1. 시작 타임, 종료 타임을 구한다.
  2. 시작 타임을 기준으로 오름 차순으로 정렬한다.
  3. 새로운 트래픽이 생겨날 때마다, 생성 시간 일초전까지 이전 트래픽이 종료되었는가를 확인한다.
    3-1. 종료되지 않았다면, 트랙픽량을 증가시킨다.
    3-2. 종료되었다면, 이전 트래픽 목록에서 제거한다. (해당 데이터로는 더 이상 비교하지 않는다.)
  4. 새로운 트래픽을 이전 트래픽 목록으로 저장한다.
profile
취뽀를 기원하는 취준생입니다!

0개의 댓글