Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 30 |
Tags
- GIT
- 네이버AItech
- leetcode
- Matplotlib
- pytorch
- GCP
- Kaggle
- autoencoder
- 코딩테스트
- 프로그래머스
- python
- FastAPI
- NLP
- wandb
- 완전탐색
- rnn
- DeepLearning
- PytorchLightning
- pep8
- GitHub Action
- Kubernetes
- FDS
- 백준
- docker
- NaverAItech
- github
- vscode
- 알고리즘
- datascience
- torchserve
Archives
- Today
- Total
Sangmun
프로그래머스 [1차] 추석 트래픽 python 본문
https://school.programmers.co.kr/learn/courses/30/lessons/17676?language=python3
프로그래머스에서 Level3로 분류된 문제이지만 굉장히 쉽다 중간의 까다로운 구현과정과 곂치는 구간에 대한 판단에서 실수가 있다면 헤멜수도 있을것 같다. 중요포인트는 아래와 같다.
* python timedelta를 이용하여 시간에 대한 계산을 간편하게 하기
* 트래픽이 곂치는 조건을 명확하게 파악하기
* 입력의 총 길이가 2000이 최대임으로 이중 for문 즉 완전탐색으로 곂치는 트래픽을 탐색해도 된다.
import datetime
def solution(lines):
time_lines = []
for line in lines:
tmp = line.split()
end = tmp[1]
new_end = datetime.timedelta(hours=int(end[:2]), minutes=int(end[3:5]), \
seconds=int(end[6:8]), milliseconds=int(end[9:]))
seconds = tmp[2].split('.')
second = seconds[0]
# s만 딸랑 들어오는 case가 있음 짜증 ...
try:
mili_s = seconds[1][:-1]
except:
second = second.replace('s','')
mili_s = 0
second_delta = datetime.timedelta(seconds=int(second), milliseconds=int(mili_s))
# 3초가 넘어가는 처리 요청은 timeout으로 3초로 처리함
if second_delta > datetime.timedelta(seconds=3): second_delta = datetime.timedelta(seconds=3)
second_delta -= datetime.timedelta(milliseconds=1)
start = new_end - second_delta
time_lines.append((start, new_end))
result = []
# 2중 for문으로 모든 케이스를 탐색
for i in range(len(time_lines)):
count = 0
start_time = time_lines[i][1]
end_time = start_time + datetime.timedelta(milliseconds=999)
for j in range(len(time_lines)):
tmp_start = time_lines[j][0]
tmp_end = time_lines[j][1]
# 곂치는지 안곂치는지 판단하는 조건
if start_time <= tmp_end and tmp_start <= end_time:
count += 1
result.append(count)
return max(result)
'알고리즘 > 프로그래머스' 카테고리의 다른 글
프로그래머스 코딩 테스트 공부 (0) | 2023.04.13 |
---|---|
프로그래머스 표 편집 (0) | 2023.04.07 |
프로그래머스 문제 후보키 (0) | 2023.04.04 |
프로그래머스 징검다리 (0) | 2023.03.23 |
프로그래머스 무인도 여행 (0) | 2023.03.10 |
Comments