풀이
- 수첩1에 해당하는 hashSet에 연종이가 본 숫자들을 저장한다.
- 수첩2에 적은 값들을 차례로 수첩1에 포함되어 있는지 체크 후 1 또는 0 출력한다.
- 이때 System.out.println 은 많은 출력으로 시간초과가 발생할 수 있으니 StringBuilder에 append를 통해 문자열을 잇고 한 번에 출력하자
package problem_solving.hash;
import java.util.HashSet;
import java.util.Scanner;
public class BaekJoon_2776 {
public static void main(String[] args) {
Scanner sc= new Scanner(System.in);
int T = Integer.parseInt(sc.next());
while(T -- > 0) {
HashSet<Integer> h = new HashSet<>();
int n = Integer.parseInt(sc.next());
for(int i= 0 ; i < n ; i++) {
h.add(Integer.parseInt(sc.next()));
}
int m = Integer.parseInt(sc.next());
StringBuilder sb = new StringBuilder();
for(int i= 0 ; i < m ;i++) {
int num = Integer.parseInt(sc.next());
if(( h.contains(num))) {
sb.append(1);
}else {
sb.append(0);
}
if( i == m-1) {
break;
}
sb.append('\n');
}
System.out.println(sb.toString());
}
}
}