문제
해결 방법
해시쪽을 복습하면서 관련된 문제들을 보고 있는데 이 문제와 같은 경우는 굳이 HashMap을 사용하지 않고,
HashSet을 이용해서 값을 넣어둔 뒤에 그 값이 있는지 없는지만 체크하면 될 것 같아 아래와 같이 코드를 짜보았다.
처음에 주어진 값을 diary라는 HashSet에 넣어둔 뒤에 contains를 이용해서 비교한 뒤 있으면 1, 없으면 0을
StringBuilder에 저장해 놓은 뒤에 출력하는 방식이다.
코드
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.HashSet;
import java.util.Set;
import java.util.StringTokenizer;
import java.io.IOException;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
StringTokenizer st;
int T = Integer.parseInt(br.readLine());
for (int i = 0; i < T; i++) {
Set<Integer> diary = new HashSet<>();
int N = Integer.parseInt(br.readLine());
st = new StringTokenizer(br.readLine(), " ");
for (int j = 0; j < N; j++) {
diary.add(Integer.parseInt(st.nextToken()));
}
int M = Integer.parseInt(br.readLine());
st = new StringTokenizer(br.readLine(), " ");
for (int j = 0; j < M; j++) {
int checkNum = Integer.parseInt(st.nextToken());
if (diary.contains(checkNum)) {
sb.append(1 + "\n");
} else {
sb.append(0 + "\n");
}
}
}
System.out.println(sb);
}
}
'Algorithm > BaekJoon' 카테고리의 다른 글
[JAVA] 백준 1261 : 알고스팟 (0) | 2021.04.02 |
---|---|
[JAVA] 백준 2933 : 미네랄, 18500 : 미네랄2 (0) | 2021.03.29 |
[JAVA] 백준 1620 : 나는야 포켓몬 마스터 이다솜 (0) | 2021.03.24 |
[JAVA] 백준 14267 : 회사 문화 1 (0) | 2021.03.24 |
[JAVA] 백준 15900 : 나무 탈출 (0) | 2021.03.23 |