๐ŸŒžAlgorithm/๐Ÿ”ฅBaekjoon

[Baekjoon] 15407_How to Eat at a Buffet

๋ฟŒ์•ผ._. 2026. 3. 31. 15:54
๋ฌธ์ œ(์ถœ์ฒ˜: https://www.acmicpc.net/problem/15407)

< How to Eat at a Buffet  >

 

๋ฌธ์ œ ํ’€์ด 

 

๊ฐ€์น˜๊ฐ€ ํฐ ์ˆœ์„œ๋Œ€๋กœ ์ •๋ ฌํ•ด ์Œ์‹์„ ๋‹ด๋Š”๋‹ค.

 

my solution (Java)

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.StringTokenizer;

public class _15407_ { // How to Eat at a Buffet

	public static void main(String[] args) throws IOException {
		BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
		StringTokenizer st;

		int n = Integer.parseInt(bf.readLine());
		int area = Integer.parseInt(bf.readLine());

		ArrayList<int[]> list = new ArrayList<>();
		for (int i = 0; i < n; i++) {
			st = new StringTokenizer(bf.readLine());

			int v = Integer.parseInt(st.nextToken());
			int a = Integer.parseInt(st.nextToken());

			list.add(new int[] { v, a });
		}

		Collections.sort(list, new Comparator<int[]>() {

			@Override
			public int compare(int[] o1, int[] o2) {
				if (o1[0] == o2[0]) {
					return o1[1] - o2[1];
				}
				return o2[0] - o1[0];
			}
		});

		int result = 0;
		for (int i = 0; i < n; i++) {
			if (area == 0) {
				break;
			}
			if (area >= list.get(i)[1]) {
				area -= list.get(i)[1];
				result += list.get(i)[0] * list.get(i)[1];
			} else {
				result += list.get(i)[0] * area;
				area = 0;
			}
		}
		System.out.println(result);
	}

}
๋ณ€์ˆ˜)
n : ์Œ์‹ ๊ฐœ์ˆ˜
area : ์ ‘์‹œ ๋ฉด์ 
v, a : ๊ฐ€์น˜, ์Œ์‹ ๋ฉด์ 
list : ์Œ์‹ ์ •๋ณด๋ฅผ ๋‹ด๋Š” ArrayList
result : ์ตœ๋Œ€ ๊ฐ€์น˜ 

 

์Œ์‹ ๊ฐœ์ˆ˜์™€ ์ ‘์‹œ ๋ฉด์ ์„ ์ž…๋ ฅ๋ฐ›๋Š”๋‹ค. ์Œ์‹ ๊ฐœ์ˆ˜๋งŒํผ ์Œ์‹ ์ •๋ณด๋ฅผ ์ž…๋ ฅ๋ฐ›์•„ ArrayList์— ์ €์žฅํ•œ๋‹ค. ArrayList๋ฅผ ๊ฐ€์น˜๊ฐ€ ํฐ ์ˆœ์„œ๋Œ€๋กœ, ๊ฐ€์น˜๊ฐ€ ๊ฐ™๋‹ค๋ฉด ๋ฉด์ ์ด ์ž‘์€ ์ˆœ์„œ๋Œ€๋กœ ์ •๋ ฌํ•œ๋‹ค. ArrayList ์ˆœ์„œ๋Œ€๋กœ ์ ‘์‹œ์— ๋‹ด์•„ ๊ฐ€์น˜๋ฅผ ๊ตฌํ•œ๋‹ค. ์ตœ์ข… result๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค. 



 

'๐ŸŒžAlgorithm > ๐Ÿ”ฅBaekjoon' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[Baekjoon] 9844_Gecko  (0) 2026.04.02
[Baekjoon] 30337_Linas ir mandarinai  (0) 2026.04.01
[Baekjoon] 15287_Easy Quest  (0) 2026.03.30
[Baekjoon] 9834_Card  (0) 2026.03.25
[Baekjoon] 11270_Disastrous Downtime  (0) 2026.03.24