[백준] 알고리즘 11053번 - 가장 긴 증가하는 부분 수열 자기자신은 포함시킨 후 자기보다 작은 값일 경우 증가하는 수열이니 dp에 저장. 이문제는 복습한 후, 수정이 필요 Algorithm 2020. 11. 16. 16:09
[백준] 알고리즘 2156번 - 포도주 시식 1 2 3 4 5 6 3을 기준으로 잡으면 안마시기 1,3번 마시기 2,3번 마시기 dp에는 와인을 마시는 최대의 수가 들어간다. Algorithm 2020. 11. 15. 18:17
[백준] 알고리즘 2193번 - 이친수 현재 자릿수가 0일경우 올 수 있는 경우의 수 -> 0과 1 둘다 가능하다. 현재 자릿수가 1일경우 올 수 있는 경우의 수 -> 0만 가능하다. Algorithm 2020. 11. 14. 13:57
[백준] 알고리즘 11057번 - 오르막 수 첫 자리 수에 경우의 수를 저장해둡니다. 그리고 두번째 자리 수부터 비교를 하는데 첫자리가 0일 경우 올 수 있는 경우의 수는 0 하나입니다. 첫자리가 1일 경우 올 수 있는 경우의 수는 0,1 두개 입니다. 쭉 이런식으로 식을 만들면됩니다. Algorithm 2020. 11. 13. 16:34
[백준] 알고리즘 11052번 - 카드 구매하기 dp = 이전 값을 활용 dp[n] 에는 최대값이 들어있다. n=5일때, 비교해야할 경우의 수 -> dp[5] , dp[4] + 1 , dp[3] + 2, dp[2] + 3, dp[1] + 4 Algorithm 2020. 11. 12. 15:17
[백준] 알고리즘 11727번 - 2 x n 타일링 2문제 2x2 타일이 추가된 문제입니다. 하나하나 4까지 그려본다. 2x4 -> 2x2 + 2x3 으로 문제르 나눌 수 있다. 2x2의 경우에는 가로가 한칸인 타일은 올 필요가 없다, 왜냐하면 2x3 에서 하나짜리 타일을 이용하기 때문이다. 즉 2x2 타일 과 가로가 2칸인 것들을 조합하여 2x4를 만들 수 있다. 즉 2x2를 총 3개 만들 수 있으니, 2x4를 위한 2x2의 개수는 총 6개가 만들어지고, 나머지 2x3에서 추가적으로 5개 이므로 총 11개 Algorithm 2020. 11. 8. 00:17
[백준] 알고리즘 11726번 - 2 x n 타일링 문제 최소 타일의 n 의 값을 5까지 직접 구해본 후, 관계를 확신하다 싶으면 식을 이용하여 풀어본다. dp[n]= dp[n-1]+dp[n-2] 의 식을 만족하여 가볍게 풀 수 있었다. Algorithm 2020. 11. 7. 18:32
[백준] 알고리즘 C++ 1463번 - 1로 만들기 문제 다이나믹 프로그래밍 DP 를 이용하여 풀 수 있습니다. dp[1] = 0 dp[2] = 1 // 2로 나누어 1로 만들어짐 dp[3] = 1 // 3으로 나누어 1로 만들어짐 dp[4] = 2 // 2로 나누고 -1 총 2번 dp[5] = 3 // 1빼고 dp[4] 의 값 총 더해서 3번 즉 dp[n]=dp[n/2]+1 , dp[n/3] +1, dp[n-1] +1 이 셋중 최소 값을 찾는 것이 최단 수 이다. Algorithm 2020. 11. 7. 13:04