2019.03.07) 백준 이분탐색 특집 1편 -10815 (PyPy3)
2019. 3. 7. 18:26ㆍ프로그래밍(주력)/백준 문제풀이
이분탐색은 정렬을 하고 탐색한다는 것에서 좀 인간답다.
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 31 32 33 34 35 36 37 38 39 40 41 | l_len = int(input()) l = list(map(int, input().split(' '))) l.sort() # 이분 탐색 def search(h): # 맨 왼쪽은 0 left = 0 # 맨 오른쪽은 끝값 right = l_len - 1 # 중간 mid = (left + right) // 2 result = 0 while True: # 만약 중간값이 구할 값이면 if l[mid] == h: # 1 리턴 result = 1 break # 만약 중간값이 구해야하는 값보다 작으면 elif l[mid] < h: # 중간 + 1을 왼쪽으로 left = mid + 1 # 만약 중간값이 구해야하는 값보다 크면 elif l[mid] > h: # 중간 - 1을 오른쪽으로 right = mid - 1 # 중간값 갱신 mid = (left + right) // 2 # 반목문 탈출 if left > right: break return result input() for i in map(int, input().split(' ')): print(search(i), end=' ') | cs |
'프로그래밍(주력) > 백준 문제풀이' 카테고리의 다른 글
2019.03.09) 백준 주제가 섞여버렸.. - 1300, 2805 (PyPy3) (0) | 2019.03.09 |
---|---|
2019.03.08) 백준 이분탐색 특집 2편 -1300, 2805 (PyPy3) (0) | 2019.03.08 |
2019.03.06) 백준 완전탐색 특집 3편 - 2667, 1012 (PyPy3) (0) | 2019.03.06 |
2019.03.05) 백준 스택 심화 1편 - 6549 (PyPy3) (0) | 2019.03.05 |
2019.03.04) 백준 완전탐색 특집 2편 - 1697 (PyPy3) (0) | 2019.03.04 |