알고리즘

    [알고리즘] 재귀함수와 반복문을 이용한 이진탐색

    이진탐색은 데이터가 정렬된 경우에만 사용가능합니다. 1. 재귀를 이용한 이진탐색 def binary_search(array, target, start, end): if start > end: return None mid = (start + end) // 2 # 찾은 경우 중간점 인덱스 반환 if array[mid] == target: return mid # 중간점의 값보다 찾고자 하는 값이 작은 경우 왼쪽 확인 elif array[mid] > target: return binary_search(array, target, start, mid - 1) # 중간점의 값보다 찾고자 하는 값이 큰 경우 오른쪽 확인 else: return binary_search(array, target, mid + 1, end)..

    거스름돈 거슬러주기 - [그리디]

    당신은 음식점의 계산을 도와주는 점원입니다. 카운터에는 거스름돈으로 사용할 500원, 100원, 50원, 10원 짜리 동전이 무한히 존재한다고 가정. 손님에게 거슬러 주어야할 돈이 N원일 때 거슬러 주어야 할 동전의 최소 개수를 구하세요 단, 거슬러 줘야 할 돈 N은 항상 10의 배수 n = 1260 count = 0 # 큰 단위의 화폐부터 차례대로 확인 array = [500, 100, 50, 10] for coin in array: count =+ n // coin # 해당 화폐로 거슬러 줄 수 있는 동전의 개수 세기 n %= coin # n을 coin으로 나눈 나머지 값 print(count)