import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.HashSet;
import java.util.Set;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
Set<Integer> set = new HashSet<>();
int N = Integer.parseInt(br.readLine());
StringTokenizer st = new StringTokenizer(br.readLine());
for(int i = 0; i < N; i++) {
set.add(Integer.parseInt(st.nextToken()));
}
int M = Integer.parseInt(br.readLine());
st = new StringTokenizer(br.readLine());
StringBuilder sb = new StringBuilder();
for(int i = 0; i < M; i++) {
if (set.contains(Integer.parseInt(st.nextToken()))) sb.append(1).append("\n");
else sb.append(0).append("\n");
}
br.close();
System.out.print(sb);
}
}
자료구조 수업 중 풀게된 문제이다.
Set
을 이용해서 contains()
를 통해 해당 값이 있는지 반복문을 통해 찾도록 구현하였다.
사실 문제 밑에 알고리즘 분류를 보면 정렬과 이분탐색을 이용하여 푸는 문제인 듯 한데 정렬은 공부를 아직 하지못해서 공부한 뒤 다시한번 풀어봐야겠다.