[파이썬] 프로그래머스 : 추석 트래픽 (Lv.3)
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
풀이
0.방향성 생각
- 정렬 (근데 이미 정렬돼있음)
- 이전에 풀었던 요격하기. 단속카메라 문제랑은 다르게 특정 시점이 아니라 구간 최대값이다.
1. 문자열 파싱
def solution(lines):
info = []
for line in lines:
_,now,spend = line.split()
h,m,s = map(float,now.split(':'))
end = int((h*3600+m*60+s)*1000)
start = int(end-float(spend[:-1])*1000+1)
info.append((start,end))
- info에 task마다 시작, 끝시간을 넣는다.
- 소수점 연산하니까 부동소수점 오류나서 소수점 없애고 int로 바꿈
2. 탐색
answer = 0
for i in range(len(lines)):
count = 0
now = info[i][1]
for j in range(i,len(lines)):
if now + 1000 > info[j][0]:
count += 1
answer = max(answer,count)
return answer
- 현재 task의 끝 시간부터 +1초 (+1000)까지 몇 개 있는지 센다.
전체코드
def solution(lines):
info = []
for line in lines:
_,now,spend = line.split()
h,m,s = map(float,now.split(':'))
end = int((h*3600+m*60+s)*1000)
start = int(end-float(spend[:-1])*1000+1)
info.append((start,end))
answer = 0
for i in range(len(lines)):
count = 0
now = info[i][1]
for j in range(i,len(lines)):
if now + 1000 > info[j][0]:
count += 1
answer = max(answer,count)
return answer
코멘트
N = 2000이라 그냥 초단위로 바꾸고 브루트포스해도 맞을듯
옛날이랑 지금문제랑 난이도차이 너무 심한듯
'Algorithm > etc' 카테고리의 다른 글
[파이썬] 백준 1749 : 점수따먹기 (골드4) (0) | 2023.09.11 |
---|---|
[파이썬] 백준 18428 : 감시피하기 (골드5) (0) | 2023.08.31 |
[파이썬] 백준 10836 : 여왕벌 (골드4) (0) | 2023.08.31 |
[파이썬] 백준 15683 : 감시 (골드4) (0) | 2023.08.27 |
[파이썬] 백준 15686 : 치킨배달 (골드5) (0) | 2023.08.27 |
[파이썬] 백준 23295 : 스터디 시간 정하기1 (골드3) (0) | 2023.08.14 |
[파이썬] 백준 14500 : 테트로미노 (골드4) (0) | 2023.08.05 |
댓글