BOJ1920-수 찾기

Ok Haeeun·2023년 3월 30일
0

Python3로 algorithm문풀

목록 보기
38/53

역시나 적시나 시간초과의 확률이 높은 문제였다.

나는 숫자로 변환하지 않고 문자열 그대로 받아서
set으로 만들어 교집합을 얻고
m_list에서 하나씩 꺼내어 교집합에 있는지 비교하였다.

(사실 질문게시판에서 힌트를 얻었다 여기에서 set을 사용하다니!
set은 진짜 생각지도 못할때 늘 등장한다 눈 여겨보기!)

a_list를 계속 비교하는 것이 아니라,
교집합 리스트에서 비교하는게 시간복잡도를 줄이는데
아주 중요한 포인트였다!

import sys

n = int(sys.stdin.readline().rstrip('\n'))
a_list = list(sys.stdin.readline().rstrip('\n').split())
m = int(sys.stdin.readline().rstrip('\n'))
m_list = list(sys.stdin.readline().rstrip('\n').split())
set_a = set(a_list)
set_m = set(m_list)
set_a_m = set_a & set_m


for i in m_list:
    if i in set_a_m:
        print(1)
    else:print(0)
profile
tistory에 이어서 기록합니다 👉 https://i-m-okay.tistory.com/

0개의 댓글

관련 채용 정보