프로그래머스 코딩테스트 고득점 Kit의 문제입니다.
https://programmers.co.kr/learn/challenges?tab=algorithm_practice_kit
문제
https://programmers.co.kr/learn/courses/30/lessons/17676
내가 작성한 코드
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][2020] 외벽 점검 (0) | 2021.09.01 |
---|---|
[프로그래머스][KAKAO_BLIND][2018] 뉴스 클러스터링 (0) | 2021.09.01 |
[백준][분할정복] 퍼즐 자르기 (0) | 2021.08.30 |
[백준][그리디] 휴먼 파이프라인 (0) | 2021.08.30 |
[프로그래머스][KAKAO_BLIND][2020] 기둥과 보 설치 (0) | 2021.08.30 |