๋ฌธ์ (์ถ์ฒ: 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 |