일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- tree
- 어렵다
- 피보나치
- 퍼셉트론
- 머신러닝
- ssac
- 분할정복
- memoization
- 딥러닝
- dp
- 자료구조
- 힙
- 스티커
- 알고리즘
- 힙구조
- 피보나치수열
- 아직
- 우선순위큐
- 역전파
- 트리
- 다이나믹프로그래밍
- 메모이제이션
- Image Classification
- 밑시딥
- 병합정렬
- AIFFEL
- 인공지능
- 오차역전파법
- 인공지는
- Today
- Total
목록알고리즘 (2)
딥러닝 for Deep Learning

[다이나믹 프로그래밍] 정의: 다이나믹 프로그래밍(Dynamic Programming)이란, 큰 문제를 작게 나누고, 같은 문제라면 한 번씩만 풀어 문제를 효율적으로 해결하는 알고리즘 기법이다. 우선, 다이나믹 프로그래밍으로 해결할 수 있는 예시인 피보나치수열 문제를 구하는 과정을 살펴보자. 어떤 수열의 항이 앞의 두 항의 합과 같은 수열을 피보나치 수열이라 하며 그림으로 나타내면 아래와 같다. n번째 피보나치 수 = (n-1)번째 피보나치 수 + (n-2)번째 피보나치 수 첫 번째와 두 번째 피보나치 수 = 1 이러한 피보나치 수열 문제를 일반적으로 프로그래밍 코드로 작성하면 문제가 발생하게 되는데, f(n) 함수에서 n이 커지면 커질수록 수행 시간이 기하급수적으로 늘어나게 된다. 빅오 표기법을 사용하..

[분할 정복] 정의: 분할 정복은 다중 분기 재귀를 기반으로 하는 알고리즘 디자인 패러다임을 말한다. 그대로 해결할 수 없는 문제를 작은 문제로 분할하여 문제를 해결하는 방법이나 알고리즘이다. 위 그림에선 상단에서 '분할'하고 중앙에서 '정복'을 하고 하단에서 '조합'하는 분할 정복의 과정을 나타낸다. 각 과정에 대한 설명은 아래와 같다. 분할: 문제를 동일한 유형의 하위 문제로 나눈다. 정복: 가장 작은 단위의 하위 문제를 해결하여 정복한다. 조합: 하위 문제에 대한 결과를 원래 문제에 대한 결과로 조합한다. 조금 더 자세한 과정을 살펴보자. 위의 파란 점을 기준으로 데이터를 좌우로 분할한다. 분할 작업이 모두 끝나고 나면 정복을 수행하며, 데이터를 조합할 때는 데이터를 크기 순으로 정렬하면서 진행한다..