# 백준BOJ/Python : 1920번 수 찾기

- Author: @laetipark
- Published: 2023-07-04
- Updated: 2023-07-04
- Source: http://blex.me/@laetipark/%EB%B0%B1%EC%A4%80bojpython-1920%EB%B2%88-%EC%88%98-%EC%B0%BE%EA%B8%B0
- Tags: python, 자료구조, algorithm, 정렬, 백준, boj, baekjoon, 이분탐색

---

### 수 찾기
- 시간 제한 : 1초
- 메모리 제한 : 128MB

[1920번 : 수 찾기 원본](https://www.acmicpc.net/problem/1920)

### 알고리즘 분류
- 자료 구조
- 정렬
- 이분 탐색

### 문제
N개의 정수 A[1], A[2], …, A[N]이 주어져 있을 때, 이 안에 X라는 정수가 존재하는지 알아내는 프로그램을 작성하시오.

### 입력
첫째 줄에 자연수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 N개의 정수 A[1], A[2], …, A[N]이 주어진다. 다음 줄에는 M(1 ≤ M ≤ 100,000)이 주어진다. 다음 줄에는 M개의 수들이 주어지는데, 이 수들이 A안에 존재하는지 알아내면 된다. 모든 정수의 범위는 -231 보다 크거나 같고 231보다 작다.

### 출력
M개의 줄에 답을 출력한다. 존재하면 1을, 존재하지 않으면 0을 출력한다.

### 풀이
set 함수를 통해 nArray 중복을 제거한 집합을 만들고 mArray의 숫자들이 nArray 집합 안에 존재하는지 여부를 확인한다.

**set에 다음과 같은 2가지 특징이 있다.**
- 중복을 허용하지 않는다.
- 순서가 없다(Unordered).

### 소스 코드
##### Python
```python
N = int(input())
nArray = set(map(int, input().split()))
M = int(input())
mArray = list(map(int, input().split()))

for i in range(M):
    if mArray[i] in nArray:
        print("1")
    else:
        print("0")
```

### 참고
- [집합 자료형, 점프 투 파이썬](https://wikidocs.net/1015)
