코테

[백준] 1920 수 찾기

with_AI 2022. 4. 7. 22:22

입력

첫째 줄에 자연수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 N개의 정수 A[1], A[2], …, A[N]이 주어진다. 다음 줄에는 M(1 ≤ M ≤ 100,000)이 주어진다. 다음 줄에는 M개의 수들이 주어지는데, 이 수들이 A안에 존재하는지 알아내면 된다. 모든 정수의 범위는 -231 보다 크거나 같고 231보다 작다.

출력

M개의 줄에 답을 출력한다. 존재하면 1을, 존재하지 않으면 0을 출력한다.

 

먼저 첫 입력 

5

4 1 5 2 3 에서 5개의 숫자가 있는데 

 

두번째 입력 

5

1 3 7 9 5 에서 첫 입력에 있는 값이면 1반환, 없으면 0반환 하는 문제 이다.

 

즉 첫 입력에 들어있는 숫자인지 아닌지 판별하는 문제이다.

 

이 문제는 set 이라는 자료형을 사용하여 문제를 풀면 쉽다.

 

set 자료형이란?

 

집합(set)은 파이썬 2.3부터 지원하기 시작한 자료형으로, 집합에 관련된 것을 쉽게 처리하기 위해 만든 자료형이다.

  • 중복을 허용하지 않는다.
  • 순서가 없다(Unordered).

이러한 특징은 Hash와 비슷하다. 

 

 

N = int(input()) #입력받을 숫자 개수
array = set(map(int,input().split())) #첫번째 array
M = int(input()) #입력받을 숫자 개수
x = list(map(int,input().split())) # 확인할 array

for i in x: # 만약 x에 있는 숫자 i 가 
	if i not in array: # array 안에 존재하지 않으면
		print('0')  # 0 프린트
	else: 
		print('1') # 아니면 1프린트

'코테' 카테고리의 다른 글

[백준] 2667 단지번호붙이기 python  (0) 2022.04.10
[백준] 9934 완전 이진 트리  (0) 2022.04.08
[백준] 2164 카드2  (0) 2022.04.07
[백준] 9012 괄호  (0) 2022.04.07
[백준] 11728 배열 합치기  (0) 2022.04.07