def solution(lines):
start = []
end = []
for log in lines:
time = log.split()
start.append(get_start_second(time[1], time[2]))
end.append(get_second(time[1]))
answer = 0
for i in range(len(end)):
result = 0
for j in range(i, len(start)):
if end[i] + 1000 > start[j]:
result += 1
answer = max(answer, result)
return answer
def get_second(time):
temp, milisecond = time.split('.')
hour, minute, second = map(int, temp.split(':'))
milisecond = int(milisecond)
return (hour*60**2+minute*60+second)*1000+milisecond
def get_start_second(time, duration):
time_duration = duration.replace('s', '')
temp = int(float(time_duration)*1000)
return get_second(time) - temp + 1
2018 카카오 블라인드 1차 - 7번
1. 시작한 시간과 끝난 시간을 milisecond로 바꿔서 리스트에 저장한다
2. 끝난 시간(정렬된 상태)를 기준으로 자신보다 뒤의 아이들의 시작시간과 비교(1초동안의 처리량: +1초)
- 끝난 시간 + 1초보다 작은 시작시간의 개수만큼 answer++
3. return answer
'Algorithm > 프로그래머스' 카테고리의 다른 글
[프로그래머스] - 압축 (파이썬) (0) | 2022.02.06 |
---|---|
[프로그래머스] - n진수 게임 (파이썬) (0) | 2022.02.06 |
[프로그래머스] - 프렌즈4블록 (파이썬) (0) | 2022.01.30 |
[프로그래머스] - 뉴스 클러스터링 (파이썬) (0) | 2022.01.30 |
[프로그래머스] - 셔틀버스 (파이썬) (0) | 2022.01.30 |