본문 바로가기

NOTE/Algorithm27

[자료구조] 다이나믹 프로그래밍 강의 정리 출저 - > 유튜브 강의 https://www.youtube.com/watch?v=0o2hF-To_6Q 를 보면서 정리 [ 다이나믹 프로그래밍 ]- 큰 문제를 작은 문제로 나눠서 푸는 알고리즘- 두가지 속성을 만족해야 다이나믹 프로그래밍으로 문제를 풀 수 있다.1. Overlapping Subproblem (겹치는 부분문제)2. Optimal Substructure (최적 부분구조) ex - 피보나치 수1234567891011int fibonacci(int n){ if (n 4->2->1 보다10->9->3->1 이 더 빠르다. 위 '1로 만들기' 문제를 Top-down 방식으로 풀게 되면..123456789101112131415161718192021222324252627282930int go(int n.. 2018. 4. 1.
[알고리즘문제] 백준_음계 내일은 이거 풀어야지https://www.acmicpc.net/problem/2920 풀었당.12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849#include >#define SIZE 100using namespace std; int main(){ char scale[SIZE] = { 0, }; int i = 0; int curNum = 0; int jumpNum = 0; // ascending, descending bool check_adm[3] = { false, false }; cin.getline(scale, sizeof(scale)); // 입력 while (scale[i + 2] != .. 2018. 4. 1.
[알고리즘문제] 백준_OX퀴즈 https://www.acmicpc.net/problem/8958 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950#include #define SIZE 100using namespace std; int AddJumsu(char arr[]) // 점수 계산해서 출력{ int add_num = 0; int i = 0; int result = 0; char *p; p = arr; while (p[i] != 0) { if (p[i] == 'O') { add_num = add_num + 1; result += add_num; } else if(p[i] == 'X') { add_num = 0; } i.. 2018. 4. 1.
[Algorithm] A* 알고리즘 게임에서 목적지에 대한 길을 찾는 알고리즘을 사용할 때를 위해 A* 알고리즘을 학습해 놓자. (참고)잘정리된 블로그 : http://lhh3520.tistory.com/343잘 설명해주는 유툽강의 (Sebastian Lague) : 아래 이미지들 출처 A* 알고리즘에는 우선 열린목록 (Open List ) // 거리를 고려할 수 있는 갈 수 있는 곳닫힌목록 (Close List) // 가장 짧은 거리를 가진 곳부모 // 각 노드들이 속해있는 부모가 존재하게 된다. F = G + H길찾기를 위해 판단할 값 = 닫힌 목록에 있는 사각형과의 거리 + 목적지까지의 거리(장애물 고려X) 목적지에 도착하고서는 목적에서부터 부모 사각형을 따라서 거슬러 올라가는 길이최단거리가 된다.초록색들이 열린 목록빨간색이 닫힌 목.. 2016. 11. 23.
자료구조) 하노이타워 #include void hanoi_tower(int n, char from, char tmp, char to){ if (n == 1) printf("원판 1을 %c에서 %c으로 옮긴다.\n", from, to); else { hanoi_tower(n - 1, from, to, tmp); printf("원판 %d을 %c에서 %c으로 옮긴다.\n", n, from, to); hanoi_tower(n - 1, tmp, from, to); }} void main(){ hanoi_tower(4, 'A', 'B', 'C');}Colored by Color Scriptercs 2015. 8. 25.
자료구조) 팩토리얼 #include int factorial(int n) //재귀 { if (n 0; k--) v = v*k; return v;} int main(){ int a, b; scanf("%d", &a); b = factorial(a); printf("%d 의 팩토리얼 결과값 : %d \n", a, b);}Colored by Color Scriptercs 2015. 8. 25.