본문 바로가기
Algorithm/프로그래머스

[프로그래머스] - 추석 트랙픽 (파이썬)

by _temp 2022. 1. 30.
def solution(lines):
    start = []
    end = []
    for log in lines:
        time = log.split()
        start.append(get_start_second(time[1], time[2]))
        end.append(get_second(time[1]))

    answer = 0
    for i in range(len(end)):
        result = 0
        for j in range(i, len(start)):
            if end[i] + 1000 > start[j]:
                result += 1
        answer = max(answer, result)

    return answer


def get_second(time):
    temp, milisecond = time.split('.')
    hour, minute, second = map(int, temp.split(':'))
    milisecond = int(milisecond)
    return (hour*60**2+minute*60+second)*1000+milisecond


def get_start_second(time, duration):
    time_duration = duration.replace('s', '')
    temp = int(float(time_duration)*1000)
    return get_second(time) - temp + 1

 

2018 카카오 블라인드 1차 - 7번

1. 시작한 시간과 끝난 시간을 milisecond로 바꿔서 리스트에 저장한다

2. 끝난 시간(정렬된 상태)를 기준으로 자신보다 뒤의 아이들의 시작시간과 비교(1초동안의 처리량: +1초)

    - 끝난 시간 + 1초보다 작은 시작시간의 개수만큼 answer++

3. return answer