이 문제는 미리 입력 받은 수안에 다음 입력받은 숫자들이 존재하는지 확인하는 문제이다.
존재한다면 1을 출력하고 존재하지 않으면 0을 출력하는 조건이다.
처음에 숫자들을 입력받아서 리스트에 저장하는 방식으로 했는데 시간초과 문제가 발생하였다.
그래서 중복되는 숫자가 있는 경우가 있어서 그런가? 싶어서 미리 입력받은 숫자를 set함수를 이용해서 중복을 제거하려했는데 역시나 시간초과 발생,,,ㅠ
a = list(map(int, input().split(' ')))
a = set(map(int, input().split(' ')))
위에 리스트 형식을 set 형식으로 바꾸었더니 해결되었다!
마지막으로 결과값 출력은 for문을 통해서 미리 입력받은 값안에 있다면 조건문을 통해 0 또는 1을 출력하도록 구현하였다.
<전체코드>
import sys
input = sys.stdin.readline
n = int(input())
a = set(map(int, input().split(' ')))
# set(a)
# print(a)
m = int(input())
num = list(map(int, input().split(' ')))
for i in num:
if i in a:
print(1)
else:
print(0)
'백준 문제풀이' 카테고리의 다른 글
[백준 1764번 문제] 듣보잡 (0) | 2022.09.15 |
---|---|
[백준 11659번 문제] 구간 합 구하기 4 (0) | 2022.09.03 |
[백준 10773번 문제] 제로 (0) | 2022.08.28 |
[백준 2164번 문제] 카드2 (0) | 2022.08.26 |
[백준 14425번 문제] 문자열 집합 (0) | 2022.08.26 |