๐ŸŒžAlgorithm/๐Ÿ”ฅBaekjoon

[Baekjoon] 33094_Diet Plan

๋ฟŒ์•ผ._. 2025. 12. 5. 00:30
๋ฌธ์ œ(์ถœ์ฒ˜: 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