programmers.co.kr/learn/courses/30/lessons/17676
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
'코딩 테스트 > 문제 풀기' 카테고리의 다른 글
[프로그래머스] 멀리뛰기 (0) | 2021.05.10 |
---|---|
[프로그래머스] 보석 쇼핑 (0) | 2021.05.09 |
[프로그래머스] 불량 사용자 (0) | 2021.05.08 |
[프로그래머스] 등굣길 (0) | 2021.05.08 |
[프로그래머스] 순위 (0) | 2021.05.03 |
댓글