풀이 방법
- 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 |