Baekjoon 1920 수 찾기

배혜진·2023년 4월 9일

Baekjoon

목록 보기
7/9

[문제]

https://www.acmicpc.net/problem/1920

[풀이]

이 문제는 수가 존재하는지 판별하는 문제로, 얼핏 보기에는 list를 둗개 만들어서 존재하는가를 확인하면 될것같아 보인다.

import sys
n=int(input())
slist=list(map(int,sys.stdin.readline().split()))

m=int(input())
nlist=list(map(int,sys.stdin.readline().split()))

for i in nlist:
    if i in slist:
        print(1)
    else:
        print(0)

그래서 이렇게 list를 만들어준 뒤 in이라는 keyword를 사용해 존재하는가 여부를 물어보는 작업을 해봤다.
여기서 import sys를 통해 sys 모듈을 이용하고
sys.stdin.readline().split()을 통해 조금 더 빠르게 input을 받아올 수 있게 되었다.
하지만 이럼에도 불구하고 시간초과 문제가 발생하였다.

이에 나는,,, 결국 인터넷을 찾아봤고, 새로운 set이라는 개념을 알게되었다.


출처 : 점프투파이썬

set을 이용하면 list를 이용할 때보다 탐색 시간이 줄어든다고 한다. (신기하당)

[최종코드]

import sys
n=int(input())
slist=set(map(int,sys.stdin.readline().split()))

m=int(input())
nlist=list(map(int,sys.stdin.readline().split()))

for i in nlist:
    if i in slist:
        print(1)
    else:
        print(0)

[돌아보며]

set은 위대하다,,,!
OS 공부하다가 백준푸니까 너무 재밌었는데,,,
역시 시험기간은 위대하다 ,,!

profile
HYU🦁 Information System 22✨

0개의 댓글