๋ฌธ์ (์ถ์ฒ: https://www.acmicpc.net/problem/33094)
< Diet Plan >
๋ฌธ์ ํ์ด
์ฐ์ ์์ ํ์ ์ฐ์ ๋ฅผ ์ ์ฅํ๋ฉฐ ์ด ์ฐ์ ์ ์์ด m๋ณด๋ค ์ปค์ง๋ฉด ๊ทธ์ค์์ ๊ฐ์ฅ ๋ง์ ์์ ์ฐ์ ๋ฅผ ๋น์คํท์ผ๋ก ๋์ฒดํ๋ค.
my solution (Java)
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Collections;
import java.util.PriorityQueue;
import java.util.StringTokenizer;
public class _33094_ { // Diet Plan
public static void main(String[] args) throws IOException {
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(bf.readLine());
int n = Integer.parseInt(st.nextToken());
int m = Integer.parseInt(st.nextToken());
int k = Integer.parseInt(st.nextToken());
int arr[] = new int[n];
st = new StringTokenizer(bf.readLine());
for (int i = 0; i < n; i++) {
arr[i] = Integer.parseInt(st.nextToken());
}
PriorityQueue<Integer> queue = new PriorityQueue<>(Collections.reverseOrder());
int cnt = 0, sum = 0;
while (cnt < n) {
queue.add(arr[cnt]);
sum += arr[cnt];
if (sum > m) {
if (k == 0) {
break;
}
k -= 1;
sum -= queue.poll();
}
cnt += 1;
}
System.out.println(cnt);
}
}
๋ณ์)
n, m, k : ์ผ, ๋ง์ ์ผ ํ๋ ์ฐ์ , ๋น์คํท ์
arr : ๊ฐ ๋ ์ง๋ง๋ค ๋ง์ ์ผ ํ๋ ์ฐ์ ์
queue : ์ฐ์ ์์ ํ
cnt, sum : ์๋จ์ ์ ์งํ ์ ์๋ ๋ , ํ์ฌ ๋ง์ ์ฐ์ ์
์ผ, ๋ง์ ์ผ ํ๋ ์ฐ์ ์, ๋น์คํท ์๋ฅผ ์ ๋ ฅ๋ฐ๋๋ค. n๋งํผ ๊ฐ ๋ ์ง๋ง๋ค ๋ง์ ์ผ ํ๋ ์ฐ์ ์ ์์ ์ ๋ ฅ๋ฐ์ arr์ ์ ์ฅํ๋ค. ์ฐ์ ์์ ํ์ ํ๋์ฉ ์ ์ฅํ๋ฉฐ ํ์ฌ๊น์ง ์ดํฉ์ด m๋ณด๋ค ํฌ๋ค๋ฉด ๊ฐ์ฅ ๋ง์ ์ฐ์ ์์ ๋น์คํท์ผ๋ก ๋์ฒดํ๋ค. ๋ง์ฝ ๋น์คํท์ด ์๋ค๋ฉด ์ข ๋ฃํ๋ค. ์ต์ข cnt๋ฅผ ์ถ๋ ฅํ๋ค.

'๐Algorithm > ๐ฅBaekjoon' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| [Baekjoon] 16652_Email Destruction (0) | 2025.12.09 |
|---|---|
| [Baekjoon] 7318_Parencodings (0) | 2025.12.08 |
| [Baekjoon] 10654_Cow Jog (0) | 2025.12.04 |
| [Baekjoon] 13984_Contest Score (0) | 2025.12.02 |
| [Baekjoon] 4649_Tanning Salon (0) | 2025.12.01 |