티스토리 뷰
https://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
|
import heapq
def solution(food_times, k):
q = list()
size = len(food_times)
for i in range(size):
heapq.heappush(q, (food_times[i], i + 1))
previous = 0
while q:
time, num = heapq.heappop(q)
time_sum = size * (time - previous)
if k >= time_sum:
k -= time_sum
previous = time
size -= 1
else:
arr = [num]
while q:
t, n = heapq.heappop(q)
arr.append(n)
arr.sort()
k %= size
return arr[k]
return -1
|
cs |
그리디 문제이다. 근데 그리디 치고는 꽤나 난이도가 있다. 카카오 공채 코테 기출인데 역시 카카오인가..??
우선순위 큐를 이용해서 가장 먹는데 시간이 적게 걸리는 음식부터 먹어치운다. 물론 가능하다는 전제하에.
그리고 남은걸 다 먹지 못할 경우, 남은 음식들을 번호순으로 정렬해서 그 차례의 음식을 먹으면 된다.
'algorithm'''problem solve' 카테고리의 다른 글
[프로그래머스] 문자열 압축 (0) | 2020.09.28 |
---|---|
[백준] 18406 - 럭키 스트레이트 (0) | 2020.09.28 |
[프로그래머스] 입국심사 (이분탐색) (0) | 2020.09.28 |
[프로그래머스] H-Index (0) | 2020.09.25 |
[프로그래머스] 가장 큰 수 (0) | 2020.09.25 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 오픈소스
- 인공지능
- 백트래킹
- 알고리즘
- 백준
- BFS
- 컨트리뷰톤
- DP
- 브루트포스
- 한화큐셀
- 플로이드 와셜
- c++
- LG
- 파이썬
- 카카오
- 동적 계획법
- webOS
- 완전탐색
- c
- BaekJoon
- 코딩
- PyPy3
- 프로그래머스
- 1932
- 구현
- 정렬
- Dynamic Programming
- 피보나치
- 이분탐색
- DFS
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함