기술 면접 대비/알고리즘 (6) 썸네일형 리스트형 [Algorithm] 탐욕법 (그리디 알고리즘, Greedy) : Java 탐욕법 (Greedy) 탐욕법 (Greedy) 이란? 최적해를 구하는 데에 사용되는 근사적인 방법 여러 경우(분기점) 중 하나를 결정해야 할 때마다 그 순간에 최적이라고 생각되는 것을 선택, 누적해가는 방법(재귀적) 즉, 전체를 고려하지 않고 그 순간에서의 최선을 선택하는 것 불완전한 방법이기 때문에, 두가지 조건(탐욕적 선택 조건, 최적 부분 구조 조건)을 만족하는 경우에만 최적의 답을 산출, 그 외엔 최적의 값이라곤 할 수 없다. 따라서, 선택들을 계속 수집해서 최종적인 해답을 얻었을 경우, 이 해답이 최적의 답이라는 보장은 없다. 탐욕법은 동적 계획법보다 수행시간이 훨씬 빠르기 때문에 유용하다. * 탐욕적 선택 조건 (greedy choice property) 앞의 선택이 이후 선택에 영향을 주지 .. [Algorithm] 동적 계획법 (다이나믹 프로그래밍, DP) : Java 동적 계획법 (DP : Dynamic Programming) - 동적 계획법에 대해서 알아본다. - 동적 계획법의 구현 방식에 대해 알아본다. 동적 계획법이란? 복잡한 문제를 간단한 여러 개의 하위 문제로 나누어 푸는 방법 즉, 큰 문제를 작은 문제로 나누어 풀어가는 방법 동적 계획법은 Optimal Substructuer에서 효과를 발휘한다. 즉, 동적 계획법은 간단한 작은 문제들 속에서 계속 반복되는 연산을 활용하여 빠르게 풀 수 있는 것이 핵심이다. 동적 계획법 알고리즘의 대표적인 문제는 피보나치 수열이다. * Optimal Substructuer 이란? 답을 구하기 위해 이미 했던 똑같은 계산을 계속 반복하는 문제 구조 사용 조건 작은 문제에서 반복이 일어난다. 같은 문제는 항상 정답이 같다. 위.. [실전 알고리즘 강좌] 삽입 정렬 (Insection Sort) 2020.08.06 오늘의 공부 실전 알고리즘 듣고 정리 중 Github 주소 https://github.com/MIN-04/TIL/blob/master/Algorithm/Sort/insectionSort.java 동빈나 - 4강 - 삽입 정렬(Insertion Sort) [ 실전 알고리즘 강좌(Algorithm Programming Tutorial) #4 ] https://www.youtube.com/watch?v=16I9Z7bS1iM&list=PLRx0vPvlEmdDHxCvAQS1_6XV4deOwfVrz&index=4 삽입 정렬 (Insection Sort) 앞의 값과 비교하여 들어갈 자리를 찾는다. (앞에 나열된 값들은 다 정렬된 상태라고 가정한다.) 필요할 때만 위치를 바꾸게 된다. 기준 값을 v.. [실전 알고리즘 강좌] 버블 정렬 (Bubble Sort) 2020.08.05 오늘의 공부 실전 알고리즘 인강을 듣고 정리 중 Github 정리 https://github.com/MIN-04/TIL/blob/master/Algorithm/Sort/bubbleSort.java 동빈나 - 실전 알고리즘 강좌 3강. 버블 정렬 https://www.youtube.com/watch?v=EZN0Irp2aPs&list=PLRx0vPvlEmdDHxCvAQS1_6XV4deOwfVrz&index=3 버블 정렬 (Bubble Sort) 서로 인접한(옆에 있는) 값과 비교하여 작은 값을 앞으로 보낸다. 정렬 중에서 가장 효율성이 떨어지는 정렬이다. 첫 번째 값과 두 번째 값을 비교하여 작은 값을 앞으로 보낸다. 두 번째 값과 세 번째 값을 비교, ... 이런 순으로 맨 마지막까지 .. [실전 알고리즘 강좌] 선택 정렬 (Selection Sort) 2020.07.28 오늘의 공부 실전 알고리즘 강좌를 듣고 정리 중 Github에 정리 https://github.com/MIN-04/TIL/blob/master/Algorithm/Sort/selectionSort.java 동빈나 - 실전 알고리즘 강좌 https://www.youtube.com/watch?v=8ZiSzteFRYc&list=PLRx0vPvlEmdDHxCvAQS1_6XV4deOwfVrz&index=2 정렬 알고리즘을 제일 먼저 배우는 이유 알고리즘을 공부할 때 가장 먼저 공부하는 것이 정렬 알고리즘이다. 이유는 뭘까? 바로 정렬만큼 알고리즘의 효율성 차이를 극명하게 보여주는 것이 없기 때문이다. 오름차순 정렬을 하고 싶을 때, 선택 정렬을 사용한다면? 선택 정렬 (Selection Sort.. Read Me - 알고리즘 공부 소스 동빈나 - 실전 알고리즘 강좌 https://www.youtube.com/watch?v=qQ5iLNjpxSk&list=PLRx0vPvlEmdDHxCvAQS1_6XV4deOwfVrz 공부 방법 알고리즘 인강을 듣고 노트에 정리 강좌는 C언어로 구성되어 있어서 JAVA로 직접 해보기 프로그래머스 사이트에서 해당 알고리즘 문제 풀어보기 티스토리에 인강과 문제 정리하기 깃헙에도 올리기 (제발) 이전 1 다음