
[문제 링크]
https://programmers.co.kr/learn/courses/30/lessons/17676?language=python3
[입출력 예제]

https://programmers.co.kr/learn/courses/30/lessons/17676?language=python3
이런 상황에서 요청이 가장 많은 1초를 찾는 것이 목표이다.
def solution(lines): # end == Response Completion Time 응답 완료 시각 # start == Response Beginning Time 응답 시작 시각 # processing == Processing Time 응답 처리시간 answer = 0 start_times=[] #1. start와 end를 따로 모은다. end_times=[] for line in lines: start, end = to_miliseconds(line) start_times.append(start) end_times.append(end) for i in range(len(lines)): cnt=0 cur_end_time=end_times[i] # 2. 끝나는 시간 기준으로 순회한다. # 응답완료시간 S를 기준으로 오름차순으로 정렬되어있기 때문이다. # 인덱스가 크면 무조건 늦게 끝난다. # 시간 기준으로 연속적으로 세는 게 아니라 완료시간 기준으로 띄엄띄엄 센다. for j in range(i, len(lines)): if cur_end_time > start_times[j]-1000: # 3. 한 방향으로만 세는 것이 중요한데, # 세는 시점보다 1초 후 방향으로만 센다. 따라서 이전에 끝난 것들은 고려할 필요X # '처리중' 이란 말은 '시작했다'는 말과 같다. 그리고 무조건 cur보다 나중에 끝난다 # 따라서 cur보다 뒤에 오는 것들 중 시작시간이 1초 이내로 차이나는 것 cnt증가 cnt+=1 answer =max(answer,cnt) return answer def to_miliseconds(line): time=line.split(" ") hours=int(time[1][:2]) minutes=int(time[1][3:5]) seconds=int(time[1][6:8]) miliseconds=float(time[1][8:]) end = hours*3600*1000+minutes*60*1000+seconds*1000+miliseconds*1000 start = end-float(time[2][:-1])*1000+1 return[start,end]
프로그래머스_정수삼각형 (0) | 2021.10.20 |
---|---|
[프로그래머스] 입국심사 파이썬 풀이 (0) | 2021.10.18 |
프로그래머스_표_편집 (0) | 2021.09.09 |
프로그래머스_N개의최소공배수_파이썬 (0) | 2021.09.09 |
프로그래머스_신규아이디추천_파이썬 (0) | 2021.09.09 |
내 블로그 - 관리자 홈 전환 |
Q
Q
|
---|---|
새 글 쓰기 |
W
W
|
글 수정 (권한 있는 경우) |
E
E
|
---|---|
댓글 영역으로 이동 |
C
C
|
이 페이지의 URL 복사 |
S
S
|
---|---|
맨 위로 이동 |
T
T
|
티스토리 홈 이동 |
H
H
|
단축키 안내 |
Shift + /
⇧ + /
|
* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.
댓글을 사용할 수 없습니다.