어디까지 갈 수 있을까?
[그리디] 프로그래머스 무지의 먹방 라이브 본문
문제링크 programmers.co.kr/learn/courses/30/lessons/42891
[답코드]
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
31
|
import heapq
def solution(food_times, k):
q=[] #(시간, 인덱스)
for i in range(len(food_times)):
heapq.heappush(q, (food_times[i], i+1))
pre_food=0
now_food=q[0][0]
n=len(food_times)
while True:
#바퀴수당으로 생각하기
if k - (now_food - pre_food) *n < 0:
break
k-= (now_food - pre_food) * n
heapq.heappop(q)
pre_food=now_food
n-=1
# 더 섭취할 음식이 없다면 -1
if not q:
return -1
now_food = q[0][0]
idx=k%n
q.sort(key=lambda x: x[1])
answer=q[idx][1]
return answer
|
cs |
[풀이법]
k를 빨리 떨어뜨리는 것에 집중해서 풀어야 되는 문제다
(food_times = 도는 횟수) 라고 생각하고 남은 시간동안 한 바퀴를 채울 수 없는 경우 순서를 반환한다고 생각하자
출처
728x90
'알고리즘 > 문제' 카테고리의 다른 글
[구현] 백준 3190 뱀 (0) | 2021.03.11 |
---|---|
[구현] 프로그래머스 문자열 압축 (1) | 2021.03.05 |
[Union-Find] 백준 10775 공항 (0) | 2021.03.02 |
[플로이드 워셜] 백준 2224 명제 증명 (0) | 2021.02.27 |
[플로이드 워셜] 백준 11403 경로 찾기 (0) | 2021.02.27 |
Comments