728x90
https://programmers.co.kr/learn/courses/30/lessons/17676
카카오 기출문제
문제의 이 그래프를 보면 각 요청의 시작점과 끝점이후에서 요청의 갯수가 바뀌는것을 볼 수 있다.
그렇기때문에 시작점과 끝점을 매번 탐색해주며 1초동안의 요청의 갯수를 구하면 된다.
시,분,초 단위를 한번에 계산하기에는 너무 많은 노력이 들어가기때문에
모두 다 ms단위로 바꿔줌으로써 계산을 편하게 수행했다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
def search(x, log_list):
result = 0
y = x + 1000 - 1
for log in log_list:
if log[1] >= x and log[0] <= y:
result += 1
return result
def solution(lines):
answer = 0
log_list = []
# 먼저 시작시간과 끝시간을 저장한다
for l in lines:
eh, em, es = l.split()[1].split(":")
t = l.split()[2].split("s")[0]
# 전부 ms로 변환해줌!
end_time = int(eh) * 3600 * 1000 + int(em) * 60 * 1000 + float(es) * 1000
start_time = end_time - (float(t) * 1000) + 1
log_list.append([start_time, end_time])
# 시작과 끝을 각각 탐색한다.
for log in log_list:
answer = max(search(log[0], log_list), answer)
answer = max(search(log[1], log_list), answer)
print(log_list)
return answer
|
cs |
728x90
'PS > 프로그래머스' 카테고리의 다른 글
[프로그래머스 LV 3] 불량 사용자 (파이썬/python) (0) | 2021.06.22 |
---|---|
[프로그래머스 LV 3] 2 x n 타일링 (파이썬/python) (0) | 2021.06.22 |
[프로그래머스 LV 3] 순위 (파이썬/python) (0) | 2021.06.22 |
[프로그래머스 LV 1 ] 키패드 누르기 (파이썬/python) (0) | 2021.06.22 |
[프로그래머스 LV 3] 가장 먼 노드 (파이썬/python) (0) | 2021.06.21 |