https://www.acmicpc.net/problem/2776
- HashSet과 HashMap을 이용하여 풀 수 있는 문제
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int T = Integer.parseInt(br.readLine());
int note1;
int note2;
// HashSet 사용
for (int i = 0; i < T; i++) {
int n = Integer.parseInt(br.readLine());
StringTokenizer st = new StringTokenizer(br.readLine());
Set<Integer> set = new HashSet<>();
for (int j = 0; j < n; j++) {
note1 = Integer.parseInt(st.nextToken());
set.add(note1);
}
int m = Integer.parseInt(br.readLine());
st = new StringTokenizer(br.readLine());
for (int j = 0; j < m; j++) {
note2 = Integer.parseInt(st.nextToken());
if (set.contains(note2)) {
bw.write("1\n");
} else {
bw.write("0\n");
}
}
}
bw.flush();
bw.close();
br.close();
}
- HashSet을 사용하여 풀이한 코드
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int T = Integer.parseInt(br.readLine());
int note1;
int note2;
// HashMap 사용
for (int i = 0; i < T; i++) {
Map<Integer, Integer> map = new HashMap();
int n = Integer.parseInt(br.readLine());
StringTokenizer st = new StringTokenizer(br.readLine());
for (int j = 0; j < n; j++) {
note1 = Integer.parseInt(st.nextToken());
map.put(note1, note1);
}
int m = Integer.parseInt(br.readLine());
st = new StringTokenizer(br.readLine());
for (int j = 0; j < m; j++) {
note2 = Integer.parseInt(st.nextToken());
if (map.containsKey(note2)) {
bw.write("1\n");
} else {
bw.write("0\n");
}
}
}
bw.flush();
bw.close();
br.close();
}
- HashMap을 사용하여 풀이한 코드
HashMap보다는 Set을 이용한 풀이가 속도가 좀 더 우수했다.