๋ฐฑ์ค ํ์ ์ด๋ฐฅ ๋ฌธ์ . ์ด์ ๋ฌธ์ ์ ๋ต์ด ๊ธธ์ด์ง๊ณ ๋ณต์กํด์ง๋ฉด์ gpt์ ์์กดํ๊ณ ์๋ค....
ํด์๋งต์ putIfAbsent() ๋ฉ์๋๋ ์ ์ฌ์ฉํด ๋ณด์ง ์์๋๋ฐ ๋ค์๊ธฐํ์ ์ฌ์ฉํด๋ณด๋ฉด ์ข์ ๊ฒ ๊ฐ๋ค.
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
int N = Integer.parseInt(st.nextToken()); // ์๋ ์
int M = Integer.parseInt(st.nextToken()); // ์ด๋ฐฅ ์
// ์ด๋ฐฅ์ ์ํ๋ ์๋ ๋ฆฌ์คํธ
Map<Integer, Queue<Integer>> sushiToCustomers = new HashMap<>();
int[] sushiCount = new int[N]; // ์๋๋ณ๋ก ๋จน์ ์ด๋ฐฅ ๊ฐ์
Set<Integer>[] customerOrders = new HashSet[N]; // ์๋๋ณ ์ฃผ๋ฌธ ๋ชฉ๋ก
// ์๋๋ค์ ์ฃผ๋ฌธ ๋ชฉ๋ก์ ์ ์ฅ
for (int i = 0; i < N; i++) {
st = new StringTokenizer(br.readLine());
int k = Integer.parseInt(st.nextToken()); // ์ฃผ๋ฌธํ ์ด๋ฐฅ ๊ฐ์
customerOrders[i] = new HashSet<>();
for (int j = 0; j < k; j++) {
int sushiType = Integer.parseInt(st.nextToken());
customerOrders[i].add(sushiType); // ์๋์ ์ฃผ๋ฌธ ๋ชฉ๋ก์ ์ถ๊ฐ
// ์ด๋ฐฅ๋ณ๋ก ํด๋น ์ด๋ฐฅ์ ์ํ๋ ์๋์ ํ์ ์ ์ฅ
sushiToCustomers.putIfAbsent(sushiType, new LinkedList<>());
sushiToCustomers.get(sushiType).add(i);
}
}
// ์ด๋ฐฅ์ ๋ง๋ค๋ฉด์ ์๋์๊ฒ ์ ๋ฌ
st = new StringTokenizer(br.readLine());
for (int i = 0; i < M; i++) {
int sushi = Integer.parseInt(st.nextToken());
// ์ด๋ฐฅ์ ์ํ๋ ์๋์ด ์กด์ฌํ๋ฉด
if (sushiToCustomers.containsKey(sushi)) {
Queue<Integer> queue = sushiToCustomers.get(sushi);
while (!queue.isEmpty()) {
int customer = queue.poll(); // ์ด๋ฐฅ์ ์ํ๋ ์ฒซ ๋ฒ์งธ ์๋ ์ ํ
// ๋ง์ฝ ์๋์ด ์ด๋ฏธ ํด๋น ์ด๋ฐฅ์ ๋จน์๋ค๋ฉด ํจ์ค
if (!customerOrders[customer].contains(sushi)) continue;
// ์๋์ด ์ด๋ฐฅ์ ๋จน์
sushiCount[customer]++;
customerOrders[customer].remove(sushi); // ํ ๋ฒ ๋จน์์ผ๋ ์ญ์
break; // ์ด๋ฐฅ์ ๋จน์์ผ๋ฉด ์ข
๋ฃ (๋ค์ ์๋์ ๋ฐ์ ์ ์์)
}
}
}
// ๊ฒฐ๊ณผ ์ถ๋ ฅ
StringBuilder sb = new StringBuilder();
for (int count : sushiCount) {
sb.append(count).append("\n");
}
System.out.print(sb);
}
}
'์ฝ๋ฉํ ์คํธ > TIL' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[99ํด๋ฝ] 5์ฃผ ์ฝํ ์คํฐ๋ ํ๊ธฐ (0) | 2025.02.27 |
---|---|
[99ํด๋ฝ] 21์ผ์ฐจ ๋ฌธ์ : ํ์ผ ์ ๋ฆฌ (0) | 2025.02.17 |
[99ํด๋ฝ] 19์ผ์ฐจ ๋ฌธ์ : ์ ๋๊ฐ ํ (0) | 2025.02.13 |
[99ํด๋ฝ] 18์ผ์ฐจ ๋ฌธ์ : ํฌ๋ฆฌ์ค๋ง์ค ์ ๋ฌผ (0) | 2025.02.12 |
[99ํด๋ฝ] 17์ผ์ฐจ ๋ฌธ์ : Relative Ranks (0) | 2025.02.11 |
๋๊ธ