10815번: 숫자 카드
첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10,
www.acmicpc.net
첫번째 시도 - 이진탐색
#숫자카드
#이진탐색 함수
def binary_search(a, key):
# global N
start = 0
end = N-1
while start <= end:
middle = (start+end)//2
if a[middle] == key: #검색 성공
return 1
elif a[middle] > key:
end = middle-1
else:
start = middle+1
return 0 #검색 실패
N = int(input())
data = list(map(int, input().split()))
M = int(input())
get = list(map(int, input().split()))
#비교대상 정렬
for j in range(N-1, 0 ,-1):
for i in range(len(data)-1):
if data[i] > data[i+1]:
data[i], data[i+1] = data[i+1], data[i]
#상근이가 갖고 있는 카드를 비교대상과 이분탐색으로 결과 도출
for j in get:
print(binary_search(data, j), end=' ')
두번째 시도
N = int(input())
data = list(map(int, input().split()))
M = int(input())
get = list(map(int, input().split()))
empty_list = []
for i in get:
for j in data:
if i == j:
empty_list.append(1)
break
else:
continue
else:
empty_list.append(0)
print(*empty_list)
결과

코드를 변경하며 길이는 짧아졌지만 결과는 둘다 시간 초과가 되었다.. 뭐가 문제인지는 모르겠다
'스터디 1일 1커밋' 카테고리의 다른 글
| 240206. [BOJ/백준] 1110. 더하기 사이클 (0) | 2024.02.06 |
|---|---|
| 240205. [BOJ/백준] 28445. 알록달록 앵무새 (1) | 2024.02.06 |
| 240204. [BOJ/백준] 2167. 2차원 배열의 합 (0) | 2024.02.06 |
| 240202. 백준 1181번 문제 (0) | 2024.02.03 |
| 240201. 백준 23968문제 (0) | 2024.02.01 |