๋ฌธ์ (์ถ์ฒ: https://www.acmicpc.net/problem/5092)
< Air Old Zeeland >
๋ฌธ์ ํ์ด
HashMap์ key ๊ฐ์ผ๋ก ์ํ๋ช , value๋ก [ํฌ์ธํธ ์, ๊ธฐ๋ค๋ ค์ผ ํ๋ ์ผ์]๋ฅผ ์ ์ฅํ๋ค.
๊ฐ ๊ณ ๊ฐ์ด ์ํ๋ ์ํ์ด ๊ธฐ๋ค๋ฆด ์ ์๋ ์ต๋ ์ผ์ ์์ ์ฌ ์ ์๋ค๋ฉด ์ํ์ ๊ตฌ๋งคํ๊ณ , ๊ทธ๋ ์ง ์๋ค๋ฉด ๊ตฌ๋งคํ์ง ๋ชปํ๋ค.
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.HashMap;
import java.util.StringTokenizer;
public class _5092_ { // Air Old Zeeland
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;
int n = 0;
while ((n = Integer.parseInt(bf.readLine())) != 0) {
HashMap<String, int[]> map = new HashMap<>();
for (int i = 0; i < n; i++) {
st = new StringTokenizer(bf.readLine());
map.put(st.nextToken(),
new int[] { Integer.parseInt(st.nextToken()), Integer.parseInt(st.nextToken()) });
}
int c = Integer.parseInt(bf.readLine());
int cnt = 0;
for (int i = 0; i < c; i++) {
st = new StringTokenizer(bf.readLine());
int number = Integer.parseInt(st.nextToken());
int p = Integer.parseInt(st.nextToken());
int m = Integer.parseInt(st.nextToken());
int value = 0;
boolean flag = false;
for (int j = 0; j < p; j++) {
String product = bf.readLine();
if (m >= map.get(product)[1]) {
value += map.get(product)[0];
} else {
flag = true;
}
}
bw.write(number + " " + value);
if (flag) {
cnt += 1;
bw.write(" *");
}
bw.write("\n");
}
bw.write("Number of discontented customers is: " + cnt + "\n");
}
bw.flush();
}
}
๋ณ์)
n : ์ํ ์
map : <์ํ๋ช , [ํฌ์ธํธ ์, ๊ธฐ๋ค๋ ค์ผ ํ๋ ์ผ์]>
c : ๊ณ ๊ฐ ์
cnt : ๋ถ๋ง์กฑํ ๊ณ ๊ฐ ์
number, p, m : ๊ณ ๊ฐ ๋ฒํธ, ๊ตฌ๋งคํ๋ ค๋ ์ ํ ์, ๊ธฐ๋ค๋ฆด ์ ์๋ ์ต๋ ์ผ์
value : ๊ตฌ๋งค ๊ธ์ก
flag : ๋ถ๋ง์กฑ ์ฌ๋ถ
product : ๊ตฌ๋งคํ๋ ค๋ ์ํ๋ช
์ํ ์๊ฐ 0์ด ์๋ ๋๊น์ง ์ ๋ ฅ๋ฐ์ผ๋ฉฐ ๋ค์ ๊ณผ์ ์ ๋ฐ๋ณตํ๋ค.
1) ์ํ ์๋งํผ ์ํ๋ช ๊ณผ ํฌ์ธํธ ์, ๊ธฐ๋ค๋ ค์ผ ํ๋ ์ผ์๋ฅผ ์ ๋ ฅ๋ฐ์ HashMap์ ์ ์ฅ
2) ๊ณ ๊ฐ ์ ์ ๋ ฅ
3) ๊ณ ๊ฐ ์๋งํผ ๊ณ ๊ฐ ๋ฒํธ, ๊ตฌ๋งคํ๋ ค๋ ์ ํ ์, ๊ธฐ๋ค๋ฆด ์ ์๋ ์ต๋ ์ผ์ ์ ๋ ฅ๋ฐ์
4) ์ ํ ์๋งํผ ์ ํ๋ช ์ ์ ๋ ฅ๋ฐ์ ๊ทธ ์ ํ์ ๊ธฐ๋ค๋ ค์ผ ํ๋ ์ผ์๊ฐ ๊ธฐ๋ค๋ฆด ์ ์๋ ์ต๋ ์ผ์ ์ดํ๋ผ๋ฉด ๊ตฌ๋งค, ๊ทธ๋ ์ง ์๋ค๋ฉด flag๋ฅผ true๋ก ์ ์ฅ
5) ๊ณ ๊ฐ ๋ฒํธ์ ๊ตฌ๋งค ๊ธ์ก ์ถ๋ ฅ
6) ๋ง์ฝ ๋ถ๋ง์กฑํ ๊ณ ๊ฐ์ด๋ผ๋ฉด * ์ถ๋ ฅ
7) ์ต์ข ๋ถ๋ง์กฑํ ๊ณ ๊ฐ ์ ์ถ๋ ฅ
'๐Algorithm > ๐ฅBaekjoon' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Baekjoon] 17599_Bags (0) | 2025.02.28 |
---|---|
[Baekjoon] 8975_PJESMA (0) | 2025.02.26 |
[Baekjoon] 14534_String Permutation (0) | 2025.02.25 |
[Baekjoon] 9492_Perfect Shuffle (0) | 2025.02.24 |
[Baekjoon] 10469_์ฌ์ด ๋์ ์ฌ์๋ค (0) | 2025.02.21 |