본문 바로가기

Java/자료 정렬 및 탐색 방법3

DP-Coin Change Algorithm 코인 체인지 알고리즘! Dynamic Programmming(동적 계획법)이란 복잡한 문제를 간단한 여러개의 문제로 나누어 푸는 방식을 의미합니다. 동적 계획법을 구현하는 방법 중의 하나가 바로 coin change algorithm(동전 선택 알고리즘) 입니다! 어떻게 코드로 구현하는 지, 어떠한 경우에 사용되는지 한 번 알아보겠습니다. ☺️ 1. 코드 구현 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 //amount원 만큼을 coins[]에 있는 coin들을 사용하여 만들 수 있는 조합의 수를 구하는 method public static long change(int amount, int[] coins) { //조합의 수를 저장할 array 생성 long[] combinat.. 2022. 6. 2.
Counting sort(계수 정렬) - O(n) Counting sort는 배열에 담긴 숫자가 몇 번씩 들어가 있는지 counting하여 정렬해주는 방식입니다! 예를 들어서 1부터 9까지의 정수만 들어갈 수 있는 int[] unsorted = {9, 2, 1, 3, 9, 7} 이라는 배열이 있다고 가정하면 index가 0부터 9까지의 빈 배열을 하나 만들어 줍니다. int[] countArr = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0} countArr의 인덱스가 1부터 9까지의 정수 역할을 해주게 됩니다. index 0 에는 숫자 0의 갯수가 들어가고, index 1에는 숫자 1의 갯수가 들어가고, index 2에는 숫자 2의 갯수가 들어가고,,,index 9에는 숫자 9의 갯수가 들어가게 되는 것입니다. (여기서는 1~9만 들어가므로 .. 2022. 5. 31.
Bubble sort(버블 정렬) - O(n2) (효율적인 코드 추가) 이름이 귀여운 bubble sort는 배열에서 i번째 요소와 (i + 1)번째 요소 값의 크기를 비교한 후 i번째 요소의 값이 (i + 1)번째 요소의 값보다 크다면 서로 자리를 바꾸어 주는 방식의 정렬법 입니다. 두 요소 중에 작은 값이 수면 위로 버블처럼 떠오르는 장면을 생각하면, 왜 이름이 버블 정렬인지 알 수 있을 것 같습니다. 배열의 모든 요소를 반복해서 돌며 다 확인하기 때문에 시간 복잡도가 O(n2)입니다. - 사용: ① 배열의 규모가 작을 때 적합 ② 구현이 비교적 간단 - 시간 복잡도: O(n2) - 구현 코드: 1 2 3 4 5 6 7 8 9 10 11 12 13 public static void bubbleSort(int[] arr) { for(int i = 0; i 2022. 5. 31.
반응형