diff --git a/caucsejunseo/README.md b/caucsejunseo/README.md index f576f01..8a93594 100644 --- a/caucsejunseo/README.md +++ b/caucsejunseo/README.md @@ -10,4 +10,7 @@ | 6차시 | 2025.04.06 | 큐 | [앵무새](https://www.acmicpc.net/problem/14713)|https://github.com/AlgoLeadMe/AlgoLeadMe-13/pull/23| | 7차시 | 2025.04.10 | 그리디 | [폴리오미노](https://www.acmicpc.net/problem/1343)|https://github.com/AlgoLeadMe/AlgoLeadMe-13/pull/28| | 8차시 | 2025.04.11 | 연결리스트| [키로거](https://www.acmicpc.net/problem/5397)|https://github.com/AlgoLeadMe/AlgoLeadMe-13/pull/30| -| 9차시 | 2025.04.30 | 문자열 | [듣보잡](https://www.acmicpc.net/problem/1764)|https://github.com/AlgoLeadMe/AlgoLeadMe-13/pull/35| \ No newline at end of file +| 9차시 | 2025.04.30 | 문자열 | [듣보잡](https://www.acmicpc.net/problem/1764)|https://github.com/AlgoLeadMe/AlgoLeadMe-13/pull/35| +|10차시| 2025.05.05 | DP | [1로만들기](https://www.acmicpc.net/problem/1463)|https://github.com/AlgoLeadMe/AlgoLeadMe-13/pull/38| +|11차시| 2025.05.07 | DP | [1,2,3더하기](https://www.acmicpc.net/problem/9095)|https://github.com/AlgoLeadMe/AlgoLeadMe-13/pull/41| + diff --git "a/caucsejunseo/\353\213\244\354\235\264\353\202\230\353\257\271 \355\224\204\353\241\234\352\267\270\353\236\230\353\260\215(dp)/2025.05.05.1\353\241\234\353\247\214\353\223\244\352\270\260.c" "b/caucsejunseo/\353\213\244\354\235\264\353\202\230\353\257\271 \355\224\204\353\241\234\352\267\270\353\236\230\353\260\215(dp)/2025.05.05.1\353\241\234\353\247\214\353\223\244\352\270\260.c" new file mode 100644 index 0000000..1efa687 --- /dev/null +++ "b/caucsejunseo/\353\213\244\354\235\264\353\202\230\353\257\271 \355\224\204\353\241\234\352\267\270\353\236\230\353\260\215(dp)/2025.05.05.1\353\241\234\353\247\214\353\223\244\352\270\260.c" @@ -0,0 +1,39 @@ +#define _CRT_SECURE_NO_WARNINGS +#include +#include +#define MIN(a,b) ((a) < (b) ? (a) : (b)) +#define MAX 1000001 + + +int main() { + + int N = 0; + scanf("%d", &N); + + int* dp = (int*)malloc(sizeof(int) * MAX); + + if (dp == NULL) { + printf("메모리 할당 실패!\n"); + return 1; + } + + dp[1] = 0; + + for (int i = 2; i < N + 1; i++) + { + dp[i] = dp[i - 1] + 1; + + if (i % 3 == 0) + { + dp[i] = MIN(dp[i], dp[i / 3] + 1); + } + if (i % 2 == 0) + { + dp[i] = MIN(dp[i], dp[i / 2] + 1); + } + } + + printf("%d", dp[N]); + + return 0; +} diff --git "a/caucsejunseo/\353\213\244\354\235\264\353\202\230\353\257\271 \355\224\204\353\241\234\352\267\270\353\236\230\353\260\215(dp)/2025.05.07.1,2,3\353\215\224\355\225\230\352\270\260.c" "b/caucsejunseo/\353\213\244\354\235\264\353\202\230\353\257\271 \355\224\204\353\241\234\352\267\270\353\236\230\353\260\215(dp)/2025.05.07.1,2,3\353\215\224\355\225\230\352\270\260.c" new file mode 100644 index 0000000..f3b7f02 --- /dev/null +++ "b/caucsejunseo/\353\213\244\354\235\264\353\202\230\353\257\271 \355\224\204\353\241\234\352\267\270\353\236\230\353\260\215(dp)/2025.05.07.1,2,3\353\215\224\355\225\230\352\270\260.c" @@ -0,0 +1,115 @@ +#define _CRT_SECURE_NO_WARNINGS +#include +#include +#include +#include + +int main() +{ + int T = 0; + scanf("%d", &T); + + int dp[11]; + + dp[1] = 1; + dp[2] = 2; + dp[3] = 4; + + int* count = (int*)malloc(sizeof(int) * T); + int* answer = (int*)malloc(sizeof(int) * T); + + for (int i = 0; i < T; i++) + { + //값을 넘겨야 해서 &쓰기 + scanf("%d", &count[i]); + + if (count[i] < 4) + { + answer[i] = dp[count[i]]; + } + else if (count[i] >= 4) + { + for (int k = 4; k <= count[i]; k++) + { + dp[k] = dp[k - 1] + dp[k - 2] + dp[k - 3]; + } + answer[i] = dp[count[i]]; + } + } + + for (int i = 0; i < T; i++) + { + printf("%d\n", answer[i]); + } + + + + return 0; +} +/* 1 +* 노가다 + 1 + 1 + + 2 + 1 1 + 2 + + 3 + 1 1 1 + 1 2 + 2 1 + 3 + + 4 + 1 1 1 1 + 1 1 2 + 1 2 1 + 2 1 1 + 2 2 + 1 3 + 3 1 + + 5 + 1 1 1 1 1 + 1 1 1 2 + 1 1 2 1 + 1 2 1 1 + 2 1 1 1 + 1 2 2 + 2 1 2 + 2 2 1 + 1 1 3 + 1 3 1 + 3 1 1 + 2 3 + 3 2 + + 6 + 1 1 1 1 1 1 + 1 1 1 1 2 + 1 1 1 2 1 + 1 1 2 1 1 + 1 2 1 1 1 + 2 1 1 1 1 + 1 1 2 2 + 1 2 1 2 + 1 2 2 1 + 2 1 1 2 + 2 1 2 1 + 2 2 1 1 + 2 2 2 + 1 1 1 3 + 1 1 3 1 + 1 3 1 1 + 3 1 1 1 + 1 2 3 + 1 3 2 + 2 1 3 + 2 3 1 + 3 1 2 + 3 2 1 + 3 3 + + + 1 2 4 7 13 24*/ \ No newline at end of file