우선순위 큐 - 더 맵게


문제 정보
check포인트 : 1 (부분 점수)
schedule시간 제한 : 1.0s
Python 3 2.0
storage메모리 제한 : 64M
Java 8 375M
Python 3 62M
edit_square출제자:
 
답안 제출

Leo는 모든 음식의 스코빌 지수를 K 이상으로 만들고자 한다. 가장 맵지 않은 음식 두 개를 선택해 아래와 같은 방법으로 섞는다:

섞은 음식의 스코빌 지수 = 가장 맵지 않은 음식의 스코빌 지수 + (두 번째로 맵지 않은 음식의 스코빌 지수 * 2)

Leo는 모든 음식의 스코빌 지수가 K 이상이 될 때까지 반복하여 섞는다. Leo가 가진 음식의 스코빌 지수를 담은 배열 scoville과 원하는 스코빌 지수 K가 주어질 때, 모든 음식의 스코빌 지수를 K 이상으로 만들기 위해 섞어야 하는 최소 횟수를 return 하도록 solution 함수를 작성하라. 단, 절대 모든 음식이 K 이상이 될 수 없는 경우에는 -1을 출력한다.

입력 설명

첫 줄에 정수 N(음식 개수)과 K(목표 스코빌 지수)가 주어진다. 둘째 줄에 N개의 정수로 이루어진 배열 scoville이 주어진다.

N K
s1 s2 s3 ... sN

출력 설명

섞는 최소 횟수를 출력한다.

만들 수 없는 경우에는 -1을 출력한다.

예제 입력

6 7
1 2 3 9 10 12

예제 출력

2

예제 설명

1 + (2×2) = 5 → [3, 5, 9, 10, 12]
3 + (5×2) = 13 → [9, 10, 12, 13]

→ 모두 7 이상 → 정답: 2
문제 힌트

숫자 최대값, 시간, 메모리 제한 등에 유의하세요.

댓글

현재 작성된 댓글이 없습니다.