https://programmers.co.kr/learn/courses/30/lessons/17676
상당히 애를 먹었다...
1. 종료시간과 처리시간을 통해 시작시간을 구한다. float 형태는 문제가 생길 수 있으니 int 형으로 변환
2. 시작시간과 종료시간으로 이루어진 리스트를 만든다.
3. 각 리스트의 기준선에서 1초를 더한 값들을 기반으로 영역 사이에 있는지 체크하여 최대 처리량을 반환
나의 풀이
def solution(lines):
history = []
for line in lines:
end_time , t = line.split()[1:]
end_time = end_time.split(':')
end_time = (int(end_time[0])*3600 + int(end_time[1])*60 + float(end_time[2]))*1000
t = float(t[:-1])*1000
start_time = end_time-t+1
history.append([start_time,end_time])
answer = 1
for hist1 in history:
counting_0 = 0
counting_1 = 0
for hist2 in history:
start1,start2 = hist1
end1,end2 = start1+1000,start2+1000
if hist2[1]>=start1 and end1>hist2[0]:
counting_0 +=1
if hist2[1]>=start2 and end2>hist2[0]:
counting_1 +=1
answer = max(answer,counting_0,counting_1)
return answer
'Programming > Programmers' 카테고리의 다른 글
[프로그래머스] 순위 (Python) (0) | 2021.11.08 |
---|---|
[프로그래머스] 가장 먼 노드 (Python) (0) | 2021.11.08 |
[프로그래머스] N개의 최소공배수 (Python) (0) | 2021.11.07 |
[프로그래머스] JadenCase 문자열 만들기 (Python) (0) | 2021.11.07 |
[프로그래머스] 행렬의 곱셈 (Python) (0) | 2021.11.07 |
댓글