diff --git a/caucsejunseo/README.md b/caucsejunseo/README.md index 8a93594..a7d6d13 100644 --- a/caucsejunseo/README.md +++ b/caucsejunseo/README.md @@ -13,4 +13,3 @@ | 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(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(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(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; +}