알고리즘/백준[baekjoon]

[baekjoon] 1920 : 수 찾기 by python

코딩하는이씨 2022. 3. 14. 13:53
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
반응형