집합을 이용한 문제이다.
집합의 성질
- 원소는 중복되지 않는다.
- 순서는 있을 수 있다.
- 정렬이 가능하다.
쉽게 풀 수 있는 문제이다. 단순히 집합에 N개의 숫자카드를 넣고 M개의 숫자카드와 비교하여 포함되어있으면 배열에 1을, 없으면 0을 넣는다.
import java.util.HashSet;
import java.util.Scanner;
import java.util.Set;
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int N=sc.nextInt();
Set<Integer> set = new HashSet<>();
for(int i=0; i<N; i++)
set.add(sc.nextInt());
int M=sc.nextInt();
int card[]=new int[M];
for(int i=0; i<M; i++)
card[i]=sc.nextInt();
for(int i=0; i<M; i++) {
if(set.contains(card[i]))
card[i]=1;
else
card[i]=0;
}
for(int i=0; i<M; i++)
System.out.print(card[i]+" ");
}
}