코딩테스트

[프로그래머스][KAKAO_BLIND][2018] 추석 트래픽

pythaac 2021. 9. 1. 05:26
프로그래머스 코딩테스트 고득점 Kit의 문제입니다.

https://programmers.co.kr/learn/challenges?tab=algorithm_practice_kit

 

코딩테스트 연습

기초부터 차근차근, 직접 코드를 작성해 보세요.

programmers.co.kr

 

문제

https://programmers.co.kr/learn/courses/30/lessons/17676

 

코딩테스트 연습 - [1차] 추석 트래픽

입력: [ "2016-09-15 20:59:57.421 0.351s", "2016-09-15 20:59:58.233 1.181s", "2016-09-15 20:59:58.299 0.8s", "2016-09-15 20:59:58.688 1.041s", "2016-09-15 20:59:59.591 1.412s", "2016-09-15 21:00:00.464 1.466s", "2016-09-15 21:00:00.741 1.581s", "2016-09-1

programmers.co.kr

 

내가 작성한 코드

from heapq import heappush, heappop

def solution(lines):
    answer = 0
    cnt = 0
    q = []
    for line in lines:
        space = line.split()
        time = float(space[-1][:-1])
        h, m, s = space[1].split(':')
        end = round(int(h)*3600 + int(m)*60 + float(s), 3)
        start = round(end - (time - 0.001), 3)
        end += 1
        heappush(q, (start, 1))
        heappush(q, (end, -1))

    while q:
        v, p = heappop(q)
        cnt += p
        while q and v == q[0][0]:
            nw_v, nw_p = heappop(q)
            cnt += nw_p
        answer = max(cnt, answer)

    return answer
  • 문자열+시간
    • 시/분/초를 초단위로 변경
  • 그리디 알고리즘
    • 끝나는 시간만 +1
    • 시작 시작, 끝나는 시간 순서대로 heap에 push
    • 겹치는 최대값 출력

 

다른 사람이 작성한 코드

None

 

기억해야할 것

  • 광고 삽입 문제에 비해 무난한 문제였다

2021.08.07 - [[개발] 공부하기/코딩테스트] - [프로그래머스][KAKAO_BLIND][2021] 광고 삽입

 

[프로그래머스][KAKAO_BLIND][2021] 광고 삽입

프로그래머스 코딩테스트 고득점 Kit의 문제입니다. https://programmers.co.kr/learn/challenges?tab=algorithm_practice_kit 코딩테스트 연습 기초부터 차근차근, 직접 코드를 작성해 보세요. programmers.co.k..

pythaac.tistory.com