๋ฌธ์
๋ฌธ์ ๋งํฌ https://www.acmicpc.net/problem/10816
- ์ซ์ ์นด๋๋ ์ ์ ํ๋๊ฐ ์ ํ์ ธ ์๋ ์นด๋์ด๋ค.
- ์๊ทผ์ด๋ ์ซ์ ์นด๋ N๊ฐ๋ฅผ ๊ฐ์ง๊ณ ์๋ค. ์ ์ M๊ฐ๊ฐ ์ฃผ์ด์ก์ ๋, ์ด ์๊ฐ ์ ํ์๋ ์ซ์ ์นด๋๋ฅผ ์๊ทผ์ด๊ฐ ๋ช ๊ฐ ๊ฐ์ง๊ณ ์๋์ง ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
- ์ฒซ์งธ ์ค์ ์๊ทผ์ด๊ฐ ๊ฐ์ง๊ณ ์๋ ์ซ์ ์นด๋์ ๊ฐ์ N(1 ≤ N ≤ 500,000)์ด ์ฃผ์ด์ง๋ค.
- ๋์งธ ์ค์๋ ์ซ์ ์นด๋์ ์ ํ์๋ ์ ์๊ฐ ์ฃผ์ด์ง๋ค. ์ซ์ ์นด๋์ ์ ํ์๋ ์๋ -10,000,000๋ณด๋ค ํฌ๊ฑฐ๋ ๊ฐ๊ณ , 10,000,000๋ณด๋ค ์๊ฑฐ๋ ๊ฐ๋ค.
- ์ ์งธ ์ค์๋ M(1 ≤ M ≤ 500,000)์ด ์ฃผ์ด์ง๋ค. ๋ท์งธ ์ค์๋ ์๊ทผ์ด๊ฐ ๋ช ๊ฐ ๊ฐ์ง๊ณ ์๋ ์ซ์ ์นด๋์ธ์ง ๊ตฌํด์ผ ํ M๊ฐ์ ์ ์๊ฐ ์ฃผ์ด์ง๋ฉฐ, ์ด ์๋ ๊ณต๋ฐฑ์ผ๋ก ๊ตฌ๋ถ๋์ด์ ธ ์๋ค. ์ด ์๋ -10,000,000๋ณด๋ค ํฌ๊ฑฐ๋ ๊ฐ๊ณ , 10,000,000๋ณด๋ค ์๊ฑฐ๋ ๊ฐ๋ค.
-
์ฒซ์งธ ์ค์ ์ ๋ ฅ์ผ๋ก ์ฃผ์ด์ง M๊ฐ์ ์์ ๋ํด์, ๊ฐ ์๊ฐ ์ ํ ์ซ์ ์นด๋๋ฅผ ์๊ทผ์ด๊ฐ ๋ช ๊ฐ ๊ฐ์ง๊ณ ์๋์ง๋ฅผ ๊ณต๋ฐฑ์ผ๋ก ๊ตฌ๋ถํด ์ถ๋ ฅํ๋ค.
์์ด๋์ด
- N๊ฐ์ ์ซ์๋ค์ ์ ๋ ฅ๋ฐ์ ๋, hashmap์ผ๋ก ์ ์ฅํ๋๋ฐ key๊ฐ์ ์ ๋ ฅ๋ฐ์ ์ซ์๋ก ํ๊ณ value ๊ฐ์ ์ฒ์์๋ 1๋ก ์ ์ฅํ๋ค.
- ๋ง์ฝ ์ ๋ ฅ๋ค์ด์จ ์๋ก key ๊ฐ์ด ์ด๋ฏธ ์๋ค๋ฉด, ํด๋น key๊ฐ์ value ๊ฐ์ 1์ ๋ํด์ ๋ค์ ์ ์ฅํ๋ค.
- ๊ทธ๋ฆฌ๊ณ M๊ฐ์ ์ซ์๋ค์ ์ ๋ ฅ๋ฐ์ ๋ฐฐ์ด์ ์ ์ฅ ํ, ๋ฐ๋ณต๋ฌธ์ ๋๋ฆฌ๋ฉฐ hashmap์์ key๊ฐ์ ์ฐพ๋๋ค.
- ํด๋น key ๊ฐ์ ์ฐพ์ผ๋ฉด ๊ฒฐ๊ณผ๊ฐ์ ์ ์ฅํ ๋ฐฐ์ด์ ์์์ ๋ง์ถฐ์ value ๊ฐ์ ์ ์ฅํ๋ค.
๊ฒช์ ์ํ์ฐฉ์ค
- ์ฒ์์ hashmap์ ์ฐ์ง์๊ณ ์ผ์ผ์ด ์ฐพ์๋ค๊ฐ ์๊ฐ์ด๊ณผ๊ฐ ๋ฌ๋ค... ์ญ์ ์๊ฐ์ด๊ณผ๋ฅผ ์กฐ์ฌํ์...!
์ฝ๋
import java.io.*;
import java.util.*;
public class BOJ10816 {
public static void main(String[] args) throws Exception{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
int N = Integer.parseInt(br.readLine());
// N๊ฐ์ ์นด๋๋ฅผ ์ ์ฅํ๋ ๋ฐฐ์ด
HashMap<Integer, Integer> n_arr = new HashMap<>();
StringTokenizer st = new StringTokenizer(br.readLine());
// N๊ฐ์ ์ซ์๋ฅผ ์
๋ ฅ๋ฐ์์ ์ ์ฅ
for(int i = 0; i < N; i++){
int n = Integer.parseInt(st.nextToken());
// n์ธ key๊ฐ ์๋์ง ํ์ธ
if(n_arr.containsKey(n)){
// n์ value ๊ฐ์ ์ ์ฅ
int v = n_arr.get(n);
// ๋ค์ ํค๋ฅผ ์ ์ฅํ ๋ value ๊ฐ์ 1์ด ๋ํด์ง ๊ฑธ ์๋ก ์ ์ฅ
n_arr.put(n, v + 1);
}
// ์๋ค๋ฉด n์ key๊ฐ, 1์ value ๊ฐ์ผ๋ก ์ ์ฅ
else{
n_arr.put(n, 1);
}
}
int M = Integer.parseInt(br.readLine());
// M๊ฐ์ ์นด๋๋ฅผ ์ ์ฅํ๋ ๋ฐฐ์ด
int m_arr[] = new int[M];
StringTokenizer st2 = new StringTokenizer(br.readLine());
// M๊ฐ์ ์ซ์๋ฅผ ์
๋ ฅ๋ฐ์์ ์ ์ฅ
for(int i = 0; i < M; i++){
int m = Integer.parseInt(st2.nextToken());
m_arr[i] = m;
}
// ๊ฒฐ๊ณผ๊ฐ ์ ์ฅํ ๋ฐฐ์ด
int result[] = new int[M];
// m_arr์ ์๋ ๊ฐ๋ค์ด m_arr์ key๊ฐ์ผ๋ก ์๋ค๋ฉด ํด๋น ์์น์
// value๊ฐ ์ ์ฅ
for(int i = 0; i < m_arr.length; i++){
result[i] = n_arr.getOrDefault(m_arr[i], 0);
}
for(int i = 0; i < result.length; i++){
sb.append(result[i] + " ");
}
System.out.println(sb);
}
}
'์๊ณ ๋ฆฌ์ฆ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Java] BOJ 10845 ํ (4) | 2024.07.20 |
---|---|
[Java] BOJ 10828 ์คํ (0) | 2024.07.20 |
[Java] BOJ 10773 ์ ๋ก (0) | 2024.07.20 |
[Java] BOJ 9012 ๊ดํธ (2) | 2024.07.19 |
[Java] BOJ 4949 ๊ท ํ์กํ ์ธ์ (2) | 2024.07.19 |