-
section3.1 이분 검색알고리즘 2022. 11. 2. 23:38
임의의 N개의 숫자가 입력으로 주어집니다. N개의 수를 오름차순으로 정렬한 다음 N개의 수 중 한 개의 수인 M이 주어지면 이분 검색으로 M이 정렬된 상태에서 몇 번째에 있는지 구하는 프로그램을 작성하세요. 단 중복 값은 존재하지 않습니다.
import sys sys.stdin = open("input.txt", "rt") n, m = map(int, input().split()) list01 = list(map(int, input().split())) for x in range(n): list01.sort() if list01[x] == m: print(x+1) break
정답이지만 아마 테스트 범위가 짧아서 정답이 나온 것 같다
알고리즘 제대로 공부해 본적이 없어서 생각나는 대로 짰는데 정답을 보니 이게 아니었다
마침 낮에 본 알고리즘 교재에도 같은 내용이 있었으니 내일 정리를 해 둬야겠다
import sys sys.stdin = open("input.txt", "rt") n, m = map(int, input().split()) a = list(map(int, input().split())) a.sort() lt = 0 rt = n-1 while lt<=rt: mid = (lt + rt) // 2 if a[mid] == m: print(mind+1) break elif a[mid] > m: rt = mid - 1 else: lt = mid + 1
728x90'알고리즘' 카테고리의 다른 글
Do it! 자료구조와 함께 배우는 알고리즘 입문(파이썬) :: DAY 04 (2) 2022.11.03 Do it! 자료구조와 함께 배우는 알고리즘 입문(파이썬) :: DAY 03 - 2 (1) 2022.11.02 Do it! 자료구조와 함께 배우는 알고리즘 입문(파이썬) :: DAY 03 - 1 (0) 2022.11.02 Do it! 자료구조와 함께 배우는 알고리즘 입문(파이썬) :: DAY 02 (0) 2022.11.01 Do it! 자료구조와 함께 배우는 알고리즘 입문(파이썬) :: DAY 01 (1) 2022.11.01