https://www.acmicpc.net/problem/2776
๐ฉ๋ฌธ์

๐๋ฌธ์ ํด๊ฒฐ(์๊ฐ์ด๊ณผ)
๋น๊ต ํด์ผํ ์ ์์ ๊ฐ์ N์ด 1 ≤ N ≤ 1,000,000๋ฒ์์ด๋ฏ๋ก, ๋งค๋ฒ System.out.println()์ผ๋ก ์ถ๋ ฅํ๋ฉด ์๊ฐ ์ด๊ณผ๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค. StringBuilder์ ๋ชจ์๋์๋ค๊ฐ ๋ง์ง๋ง์ ํ๋ฒ๋ง System.out.println()๋ก ์ถ๋ ฅํ๋๊ฒ์ ์ ํ
1. ํ ์คํธ ์ผ์ด์ค ๊ฐ์๋งํผ for๋ฌธ์ ์งํํ๊ณ ๊ทธ ์์์, N๊ณผ M๊ฐ์ ์ ๋ ฅ
2. ์ซ์ ๋ฆฌ์คํธ์ ์ ๋ ฅ๋ฐ์ N๊ณผ M ์ ์ ์๋ฅผ ์ ์ฅํ๊ณ for๋ฌธ์ ๋๋ฉด์ ์ผ์นํ๋ ๊ฒ์ด ์กด์ฌํ๋ฉด 1,์์ผ๋ฉด 0์ ์ ์ฅ ํ์ฌ ์ถ๋ ฅ
๋ ๋ฆฌ์คํธ๊ฐ ๋ชจ๋ ์์ ๋น๊ต๋ก O(N×M)
๐๋ฌธ์ ํด๊ฒฐ(HashSet)
HashSet : O(1)์ ์๊ฐ ๋ณต์ก๋๊ฒ์,์ฝ์ ,์ญ์ ์์ ์ํ
์์ฒฉ2์ ์ ํ์๋ ์์๋๋ก ๋น๊ตํด์ผํ๋ฏ๋ก
์์ฒฉ1์ ๊ฐ๋ง HashSet์ ์ ์ฅํ์ฌ ํฅ์๋ for๋ฌธ์ ์ด์ฉํ์ฌ ํด๋น๊ฐ์ด ์์ฒฉ1์ ์กด์ฌํ๋์ง contains๋ก ๋น๊ตํ์ฌ
์กด์ฌํ๋ฉด 1, ์์ผ๋ฉด 0 StringBuilder์ ์ ์ฅ.(ํ ์ค์ ํ๋์ฉ์ด๋ฏ๋ก ๊ฐํ๋ฌธ์๋ ์ถ๊ฐ)
import java.io.*;
import java.util.*;
/*
* ์
๋ ฅ *
* ํ
์คํธ ์ผ์ด์ค ๊ฐ์ T
* ์์ฒฉ1์ ์ ์ด ๋์ ์ ์ ๊ฐ์ N
* ์ ์N๊ฐ
* ์์ฒฉ2์ ์ ์ด ๋์ ์ ์ ๊ฐ์ M
* ์ ์ M๊ฐ
*
* ์ถ๋ ฅ *
* ํ์ค์ ํ๊ฐ์ฉ ์์ฒฉ2์ ์ ํ์๋ M๊ฐ์ ์ซ์ ์์๋๋ก, ์์ฒฉ1์ ์์ผ๋ฉด 1,์์ผ๋ฉด 0 ์ถ๋ ฅ
*
*/
public class Main {
public static void main(String[] args) throws IOException {
// ์
๋ ฅ์ ํจ์จ์ ์ผ๋ก ์ฒ๋ฆฌํ๊ธฐ ์ํด BufferedReader ์ฌ์ฉ
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder(); // ์ถ๋ ฅ๊ฐ์ ๋ชจ์๋๊ธฐ ์ํ StringBuilder ์ฌ์ฉ
// ํ
์คํธ ์ผ์ด์ค ๊ฐ์ ์
๋ ฅ
Integer T = Integer.parseInt(br.readLine());
// ํ
์คํธ ์ผ์ด์ค ๊ฐ์๋งํผ ๋ฐ๋ณต
for (int i = 0; i < T; i++) {
// ์์ฒฉ1์ ์ ํ ์ ์ ๊ฐ์ N ์
๋ ฅ
int N = Integer.parseInt(br.readLine());
// ์์ฒฉ1์ ์ ์๋ฅผ ์ ์ฅํ HashSet ์์ฑ
HashSet<Integer> set1 = new HashSet<>();
String[] str1 = br.readLine().split(" "); // ์์ฒฉ1์ ์ ์๋ค ์
๋ ฅ๋ฐ์ split
// ์์ฒฉ1์ ์ ์๋ฅผ HashSet์ ์ถ๊ฐ
for (String n : str1) {
set1.add(Integer.parseInt(n));
}
// ์์ฒฉ2์ ์ ํ ์ ์ ๊ฐ์ M ์
๋ ฅ
int M = Integer.parseInt(br.readLine());
String[] str2 = br.readLine().split(" "); // ์์ฒฉ2์ ์ ์๋ค ์
๋ ฅ๋ฐ์ split
// ์์ฒฉ2์ ์ ์๋ค์ ์์ฒฉ1์ HashSet๊ณผ ๋น๊ต
for (String m : str2) {
if (set1.contains(Integer.parseInt(m))) {
sb.append("1").append("\n"); // ์์ฒฉ1์ ์์ผ๋ฉด 1 ์ถ๊ฐ
} else {
sb.append("0").append("\n"); // ์์ผ๋ฉด 0 ์ถ๊ฐ
}
}
}
// ํ ๋ฒ๋ง ์ถ๋ ฅ
System.out.println(sb);
}
}
'Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| [Java]BOJ 2225 : ํฉ๋ถํด (0) | 2025.02.21 |
|---|---|
| [Java]BOJ 1654 : ๋์ ์๋ฅด๊ธฐ (0) | 2025.01.15 |
| [Java]BOJ 1388 : ๋ฐ๋ฅ์ฅ์ (0) | 2024.12.07 |
| [Java]BOJ 1026 : ๋ณด๋ฌผ (0) | 2024.12.06 |
| [Java]BOJ 16112 : 5์ฐจ ์ ์ง (0) | 2024.12.03 |