코딩테스트 연습 - [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
풀이 방법
- lines의 원소를 파싱해서 각각의 시작점과 끝점을 구해서 저장한다.
- 최대 처리량의 시작점이 될 수 있는 후보는 각 트래픽의 끝점이다.
- 각 트래픽의 끝점에서 시작하여 1초 후가 정답이 될 수 있는 구간의 후보이다.
- 모든 구간의 후보에 대하여 포함하는 트래픽의 개수가 몇 개인지 비교해서 최댓값을 저장한다.
전체 코드
def solution(lines):
answer = 0
arr = []
candidate = []
for i in lines:
i = i.split()[1:]
time, T = i
T = float(T[:-1])
end = int(time[0:2])*3600 + int(time[3:5])*60 + float(time[6:])
start = end-T + 0.001
arr.append((start, end))
candidate.append(end)
for i in candidate:
cnt = 0
for start, end in arr:
if not (start>=i+1 or end < i):
cnt += 1
answer = max(answer, cnt)
return answer
반응형
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[Python] 프로그래머스 level3 합승 택시 요금 (0) | 2021.04.06 |
---|---|
[Python] 프로그래머스 level3 자물쇠와 열쇠 (0) | 2021.04.02 |
[Python] 프로그래머스 level2 순위 검색 (0) | 2021.04.01 |
[Python] 프로그래머스 level2 메뉴 리뉴얼 (0) | 2021.04.01 |
[Python] 프로그래머스 level2 문자열 압축 (0) | 2021.04.01 |