728x90
반응형
https://www.acmicpc.net/problem/1920
1920번: 수 찾기
첫째 줄에 자연수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 N개의 정수 A[1], A[2], …, A[N]이 주어진다. 다음 줄에는 M(1 ≤ M ≤ 100,000)이 주어진다. 다음 줄에는 M개의 수들이 주어지는데, 이 수들
www.acmicpc.net
code
import sys
input = sys.stdin.readline
n = int(input())
a = set(map(int,input().split()))
m = int(input())
ain = list(map(int,input().split()))
for i in ain:
if i in a:
print(1)
else:
print(0)
이번문제는 단순하게 생각했다 시간초과가 나오기 때문에 조심해야한다
나또한 A[]로 입력을 받을때 리스트 형식으로 받았다가 시간초과가 떴다.
리스트는 O(n)의 시간을 가진다
하지만 set는 O(1)의 시간을 가지고있기때문에 리스트가 아닌 set을 사용하여 해결하여야 시간초과가 뜨지 않는다.
이러한 방법은 A[]가 기준으로써 중복이 없고 탐색활용용도로만 쓰이기 때문에 set으로 사용 가능한 문제다.
728x90
반응형
'알고리즘 > 백준[baekjoon]' 카테고리의 다른 글
[baekjoon] 2609번 : 최대 공약수 최소 공약수 (0) | 2022.03.14 |
---|---|
[baekjoon] 11050번 : 이항 계수 by python (0) | 2022.03.14 |
[baekjoon] 2751번 : 수 정렬하기 2 by python (0) | 2022.03.09 |
[baekjoon] 18870번 : 좌표압축 by python (0) | 2022.03.08 |
[baekjoon] 10814번 : 나이순 정렬 by python (0) | 2022.03.07 |