https://www.acmicpc.net/problem/10815
10815번: 숫자 카드
첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10,
www.acmicpc.net
나의 코드
N = int(input())
n_list = map(int, input().split())
M = int(input())
m_list = map(int, input().split())
empty_dict = {}
for n in n_list:
empty_dict[n] = 1
for m in m_list:
if m in empty_dict:
print(1, end=' ')
else:
print(0, end=' ')
결과

한 달 전에 스터디에서 풀기로 한 문제를 시간 초과 이슈를 해결하지 못해서 미루다가 이번에 도전해봤다. 저 문제를 풀었던 당시에는 이진탐색과 브루트포스알고리즘 방법으로 문제를 풀었는데 둘다 시간초과가 났다. 시간을 줄이려면 딕셔너리를 사용해야 한다고 해서 상근이가 갖고 있는 카드를 딕셔너리에 키값으로 넣었다. 그리고 비교할 카드의 값이 상근이가 갖고있는 카드 딕셔너리의 키값과 같을 때 1을 출력, 아니면 0을 출력하는 방식으로 코드를 짰다. 실버5문제인데 어려웠다...ㅎㅎ
'스터디 1일 1커밋' 카테고리의 다른 글
| 240310 [BOJ/백준] 16953. A -> B (0) | 2024.03.10 |
|---|---|
| 240306 [BOJ/백준] 4779. 칸토어 집합 (2) | 2024.03.06 |
| 240305 [BOJ/백준] 1244. 스위치 켜고 끄기 (0) | 2024.03.05 |
| 240303 [SWEA] 1974. 스도쿠 검증 (0) | 2024.03.03 |
| 240303 [BOJ/백준] 2578. 빙고 (0) | 2024.03.03 |