📌 문제 링크
https://www.acmicpc.net/problem/10815
📄 문제 설명
🧠 문제 접근
- 단순히 배열로 숫자들을 저장하고 매번 하나하나 비교하면 시간복잡도가 O(N * M)이 되어 시간 초과가 날 수 있다.
- 따라서 빠르게 검색 가능한 자료구조가 필요하다.
- 여기서는 HashMap을 활용해서 탐색을 O(1)로 줄일 수 있다.
✅ 내가 제출한 코드
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));
int N = Integer.parseInt(br.readLine());
String[] s1 = br.readLine().split(" ");
Map<String, String> map = new HashMap<>();
for (int i = 0; i < N; i++) {
map.put(s1[i], "1");
}
int M = Integer.parseInt(br.readLine());
String[] s2 = br.readLine().split(" ");
StringBuilder sb = new StringBuilder();
for (int i = 0; i < M; i++) {
if (map.containsKey(s2[i])) {
sb.append("1 ");
} else {
sb.append("0 ");
}
}
System.out.println(sb);
}
}
'🥟 Java > 코딩테스트' 카테고리의 다른 글
[백준 1904] 01타일 - Java (0) | 2025.06.06 |
---|---|
[백준 2747] 피보나치 수 - Java (0) | 2025.06.05 |
[백준 7785] 회사에 있는 사람 - Java (0) | 2025.06.03 |
[백준 28279] 덱 2 - Java (0) | 2025.06.02 |
[백준 18258] 큐2 - Java (0) | 2025.06.01 |