๐ŸŒžAlgorithm/๐Ÿ”ฅBaekjoon

[Baekjoon] 16061_You Are Fired!

๋ฟŒ์•ผ._. 2025. 4. 21. 13:29
๋ฌธ์ œ(์ถœ์ฒ˜: https://www.acmicpc.net/problem/16061)

< You Are Fired! >

 

๋ฌธ์ œ ํ’€์ด 

 

๋‹ฌ๋Ÿฌ ๊ธฐ์ค€ ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•˜์—ฌ d๋‹ฌ๋Ÿฌ๋ฅผ ์ ˆ์•ฝํ•  ์ˆ˜ ์žˆ๋Š” ํ•ด๊ณ ํ•  ์ธ์›์„ ์ฐพ๋Š”๋‹ค.  

 

my solution (Java)

 import java.io.BufferedReader;
 import java.io.BufferedWriter;
 import java.io.IOException;
 import java.io.InputStreamReader;
 import java.io.OutputStreamWriter;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.Comparator;
 import java.util.HashMap;
 import java.util.StringTokenizer;
 
 public class _16061_ { // You Are Fired!
 
 	public static void main(String[] args) throws IOException {
 		BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
 		BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
 		StringTokenizer st = new StringTokenizer(bf.readLine());
 
 		int n = Integer.parseInt(st.nextToken());
 		int d = Integer.parseInt(st.nextToken());
 		int k = Integer.parseInt(st.nextToken());
 
 		HashMap<String, Integer> map = new HashMap<>();
 		for (int i = 0; i < n; i++) {
 			st = new StringTokenizer(bf.readLine());
 
 			String s = st.nextToken();
 			int c = Integer.parseInt(st.nextToken());
 
 			map.put(s, c);
 		}
 
 		ArrayList<String> list = new ArrayList<>(map.keySet());
 		Collections.sort(list, new Comparator<String>() {
 			@Override
 			public int compare(String o1, String o2) {
 				return map.get(o2) - map.get(o1);
 			}
 		});
 
 		int result = 0;
 		ArrayList<String> answer = new ArrayList<>();
 
 		for (int i = 0; i < k; i++) {
 			d -= map.get(list.get(i));
 			answer.add(list.get(i));
 			result += 1;
 
 			if (d <= 0) {
 				break;
 			}
 		}
 
 		if (d > 0) {
 			bw.write("impossible");
 		} else {
 			bw.write(result + "\n");
 			for (int i = 0; i < answer.size(); i++) {
 				bw.write(answer.get(i) + ", YOU ARE FIRED!\n");
 			}
 		}
 		bw.flush();
 	}
 }
๋ณ€์ˆ˜)
n, d, k : ์ง์› ์ˆ˜, ์ ˆ์•ฝํ•ด์•ผ ํ•˜๋Š” ๊ธˆ์•ก, ํ•ด๊ณ ํ•  ์ˆ˜ ์žˆ๋Š” ์ตœ๋Œ€ ์ง์› ์ˆ˜
map : HashMap <String, Integer>
s, c : ์ง์› ์ด๋ฆ„, ๊ธ‰์—ฌ
list : HashMap key -> ArrayList
result : ํ•ด๊ณ ๋  ์ง์› ์ˆ˜
answer : ํ•ด๊ณ  ์ง์› ์ด๋ฆ„

 

์ง์› ์ˆ˜, ์ ˆ์•ฝํ•ด์•ผ ํ•˜๋Š” ๊ธˆ์•ก, ํ•ด๊ณ ํ•  ์ˆ˜ ์žˆ๋Š” ์ตœ๋Œ€ ์ง์› ์ˆ˜๋ฅผ ์ž…๋ ฅ๋ฐ›๋Š”๋‹ค. ์ง์› ์ˆ˜๋งŒํผ ์ง์› ์ด๋ฆ„๊ณผ ๊ธ‰์—ฌ๋ฅผ ์ž…๋ ฅ๋ฐ›์•„ HashMap์— ์ €์žฅํ•œ๋‹ค. HashMap์˜ key ๊ฐ’์„ ArrayList๋กœ ๋ณ€ํ™˜ ํ›„ ๊ธ‰์—ฌ ๊ธฐ์ค€ ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•œ๋‹ค. ํ•ด๊ณ ํ•  ์ˆ˜ ์žˆ๋Š” ์ตœ๋Œ€ ์ง์› ์ˆ˜๋งŒํผ ArrayList๋ฅผ ํƒ์ƒ‰ํ•˜๋ฉฐ ์ ˆ์•ฝํ•ด์•ผ ํ•˜๋Š” ๊ธˆ์•ก์„ ๋งž์ถ˜๋‹ค. d๋งŒํผ ๊ธˆ์•ก์„ ์ ˆ์•ฝํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด ํ•ด๊ณ ๋  ์ง์› ์ˆ˜์™€ ์ง์› ์ด๋ฆ„์„ ์ถœ๋ ฅํ•œ๋‹ค. d๋งŒํผ ์ ˆ์•ฝํ•  ์ˆ˜ ์—†๋‹ค๋ฉด "impossible"์„ ์ถœ๋ ฅํ•œ๋‹ค.



 

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

[Baekjoon] 16815_Star in Parentheses  (1) 2025.04.23
[Baekjoon] 6124_Good Grass  (1) 2025.04.22
[Baekjoon] 17048_Jarvis  (1) 2025.04.11
[Baekjoon] 5263_samba  (0) 2025.04.10
[Baekjoon] 12005_Diamond Collector (Bronze)  (0) 2025.04.07