[이것이 코딩 테스트다] CH06. 정렬
선택 정렬 매번 가장 작은 것을 선택해서 앞으로 보내는 과정을 반복 수행하여 오름차순으로 정렬하는 방법 # 선택 정렬 예시 array = [7,5,9,0,3,1,6,2,4,8] for i in range(len(array)): #i=0부터 min_index = i for j in range(i+1, len(array)): #j=1부터 if array[min_index] > array[j]: min_index = j #가장 작은 원소의 index를 min_index에 저장 array[i], array[min_index] = array[min_index], array[i] #swap print(array) 시간복잡도 = O(N²), N + (N-1) + ... + 2 의 빅오표기법 삽입 정렬 데이터를 적절한..
[이것이 코딩 테스트다] CH03. 그리디
1. 당장 좋은 것만 선택하는 그리디 # 예제 3-1. 거스름돈 ## N원을 거슬러 줄 때 거슬러 줘야 할 동전의 최소 개수를 구하여라. (단, N은 항상 10의 배수이다.) N = input("거스름돈 N원을 입력하시오.: ") n = int(N) coin_types = [500, 100, 50, 10] count = 0 for coin in coin_types: count += n//coin n %= coin print(N, "원을 거슬러 줄 때 최소 동전의 개수는", count, "개 이다.") 시간 복잡도 = O(K), 동전의 총 종류에만 영향을 받고, 거슬러 줘야하는 금액의 크기와는 무관하다. 2. 큰 수의 법칙 # 실전 3-2. 큰 수의 법칙 ## 배열의 크기 N, 숫자가 더해지는 횟수 M, ..