코딩 테스트/문제 풀기
[프로그래머스] 추석 트래픽
hazel_
2021. 5. 11. 15:51
programmers.co.kr/learn/courses/30/lessons/17676
코딩테스트 연습 - [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
def solution(lines):
lines_info=[]
for line in lines:
line=line.split()
lines_info.append((line[1].split(':'),line[2].replace('s','')))
new_lines=[]
for line in lines_info:
end_time=(int(line[0][0])*3600 + int(line[0][1])*60 + float(line[0][2]))*1000
start_time=end_time-float(line[1])*1000 + 1
new_lines.append((start_time, end_time))
count = 0
for j in range(len(new_lines)):
temp_end = set()
s = new_lines[j]
for i in range(len(new_lines)):
if (new_lines[i][0] <= s[1] and (new_lines[i][1] > s[
1] + 1000)): # 1. 다른 로그가, 해당 `타임라인의 앞부분` 보다 빨리 요청이 되고, 해당 `타임라인의 뒷부분`보다 늦게 완료가 되었을 때.
temp_end.add(i)
elif (s[1] <= new_lines[i][0] < s[
1] + 1000): # 2. 다른 로그가, 해당 `타임라인의 앞부분` 보다 늦게 요청이 되었지만, 그 요청이 `타임라인의 뒷부분` 보다 빨리 요청 되었을 때.
temp_end.add(i)
elif (s[1] <= new_lines[i][1] < s[
1] + 1000): # 3. 3. 다른 로그가, 해당 `타임라인의 앞부분` 보다 빨리 완료가 되었지만, 그게 `타임라인의 뒷부분` 보다 늦게 요청 되었을 때.
temp_end.add(i)
count = max(count, len(temp_end))
return count