<코드설명>

- 시간 초과 코드

import sys

n=int(input())
card=list(map(int, sys.stdin.readline().split()))
m=int(input())
chk=list(map(int, sys.stdin.readline().split()))

for i in chk:
    if i in card:
        print("1", end=' ')
    else:
        print("0", end=' ')

실행은 제대로 되었지만, 시간 초과라는 결과가 나왔다.

따라서 아래와 같은 코드로 바꿔주었다.

 

- 실행 코드

import sys
n=int(input())
card= set(map(int,sys.stdin.readline().split()))
m=int(input())
chk=list(map(int, sys.stdin.readline().split()))

for i in chk:
    if i in card:
        print("1", end=' ')
    else:
        print("0", end=' ')

상근이가 가지고 있는 숫자 카드 개수인 n을 입력받고, 그 카드에 적혀있는 숫자를 card에 받아주었다. 이때, set을 이용하여 시간복잡도를 줄일 수 있도록 하였다. 또, 확인할 숫자카드의 개수인 m을 입력받고 그 카드에 적혀있는 숫자를 chk에 받아주었다. 

chk에 저장된 수를 하나씩 살펴보기 위해 for문을 사용하였고, card에 그 숫자가 포함되어 있다면 1을 출력하도록 하였다. 그리고 그렇지 않은 경우, 0을 출력하도록 하였다.

 

 

<실행결과>

'Algorithm > BOJ' 카테고리의 다른 글

[BOJ] 1302 베스트셀러  (0) 2022.09.11
[BOJ] 7785 회사에 있는 사람  (0) 2022.09.11
[BOJ] 1235 학생 번호  (0) 2022.07.03
[BOJ] 1316 그룹 단어 체커  (0) 2022.06.26
[BOJ] 2108 통계학  (0) 2022.06.25

+ Recent posts