1920번
문제
- 첫째 줄에 N, 다음 줄에 N개의 정수가 오고 셋째 줄에 M, 다음 줄에 M개의 정수가 옴
- M개의 수들 중 N안에 존재하면 1, 아니면 0 출력
문제 해결 순서
- N개의 숫자를 Hashset인 hs에 저장
- 크기 M인 배열을 생성하고 M개의 숫자를 저장
hs.contains(arr[i])로 배열에 숫자가 존재하는지 확인Hashset.contains() 함수는 시간복잡도가 o(1)이라 시간초과가 안뜸
import java.util.Scanner;
import java.util.HashSet;
class Main {
public static void main(String[] args) {
int N;
int M;
int answer;
Scanner sc = new Scanner(System.in);
N = sc.nextInt();
HashSet<Integer> hs = new HashSet<Integer>();
for(int i=0; i<N; i++) {
hs.add(sc.nextInt());
}
M = sc.nextInt();
int arr[] = new int[M];
for(int i=0; i<M; i++) {
arr[i] = sc.nextInt();
}
for(int i=0; i<M; i++) {
if (hs.contains(arr[i])) {
answer = 1;
}
else {
answer = 0;
}
System.out.println(answer);
}
}
}