티스토리 뷰
https://www.acmicpc.net/problem/10815
10815번: 숫자 카드
첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10,
www.acmicpc.net
# 숫자 카드
import sys
input = sys.stdin.readline
N = int(input())
card = set(list(map(int, input().split())))
M = int(input())
find = list(map(int, input().split()))
answer = []
for idx in range(len(find)):
if find[idx] in card:
answer.append(1)
else:
answer.append(0)
print(*answer)
시간 초과를 피하기 위해서는 set 자료형을 사용하면 된다.
list에서의 in은 시간 복잡도가 O(n)인 반면, set 자료형에서의 in은 시간 복잡도가 O(1)이기 때문에 훨씬 효율적이다.
문제에서 card는 중복되지 않는 수라고 했기 때문에 가능하다.
'PS > BOJ Python' 카테고리의 다른 글
1358번 - 하키 (0) | 2023.03.31 |
---|---|
1015번 - 수열 정렬 (0) | 2023.03.30 |
17478번 - 재귀함수가 뭔가요? (0) | 2023.03.28 |
1182번 - 부분수열의 합 (0) | 2023.03.25 |
2805번 - 나무 자르기 (0) | 2023.03.24 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 파이썬
- 10816
- 삼성청년소프트웨어아카데미
- 1759
- 프로그래머스
- 백트래킹
- 1715
- dp
- 자료구조
- 1182
- 딕셔너리
- heapq
- 10845
- 큐
- 10971
- 러스트
- 스택
- 조합
- 덱
- 2805
- 17478
- 수학
- 10815
- 싸피
- 브루트포스
- 1764
- 빌림
- 백준
- 11051
- 1358
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
글 보관함