728x90
반응형
Silver IV
# 10815 숫자 카드
링크 : https://www.acmicpc.net/problem/10815
풀이
N = int(input())
has = list(map(int, input().split()))
has.s6ort()
M = int(input())
cards = list(map(int, input().split()))
def bs(li, target):
start = 0
end = len(li)-1
while start <= end:
mid = (start+end) // 2
if li[mid] == target:
return 1
elif li[mid] < target:
start = mid+1
elif li[mid] > target:
end = mid-1
return 0
for i in cards:
print(bs(has, i), end = ' ')
후기
- 이진 탐색을 이용해야 시간 초과를 피할 수 있다. 몇차례 시도와 실패를 반복한 끝에 스스로 풀어낼 수 있었다.
- AttributeErorr와 IndexError를 오류를 수정한 후에 정답을 맞출 수 있었다.
AttributeError : 기준이 되는 리스트와 확인하려고하는 리스트가 뒤바뀌지 않았는지 체크해볼 것
IndexError : 인덱스의 초깃값, 끝값에 잘못된 설정이 있었는지 확인해보자. end = len(li) 로 설정했더니 발생했었다. - 새로운 자료구조 이해할 때마다 시간과 노력이 배로 든다.. 좌절 안하고 열심히 해야지 (라고 말하지만 눈물 찔끔..)
'Algorithm Study > Python' 카테고리의 다른 글
[백준 파이썬] # 11279 최대 힙 (0) | 2022.03.06 |
---|---|
[백준 파이썬] # 3273 두 수의 합 (0) | 2022.03.06 |
[백준 파이썬] # 9095 1, 2, 3 더하기 (0) | 2022.03.02 |
[백준 파이썬] # 11286 절댓값 힙 (0) | 2022.03.01 |
[백준 파이썬] # 11549 구간 합 구하기 4 (0) | 2022.03.01 |