목록대학교 (252)
SW
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/EQIsB/btqBGYZCsNX/uy8XcKSb7O6ADJKFMBACsk/img.png)
0. 제목 백준 11726 2xn 타일링 BOJ 11726 2xn 타일링 C++ 2xn 타일링 1. 문제 https://www.acmicpc.net/problem/11726 2. 풀이 DP 방식을 이용하였다. 초기값 2개(dp[1], dp[2])를 먼저 설정하고 가로의 길이가 1씩 증가할 때 어떻게 변할지 생각해보았다. 가로의 길이가 1 증가했을 때의 답은 마지막에 세로로 타일 한개를 놓는 방법(dp[i-1])과 마지막전까지 해서 가로로 타일 두개를 놓는 방법(dp[i-2])를 합한 값이 방법의 수가 된다. 반복문을 다 돌고 10007로 나누려면 수가 너무 커지기 때문에 dp[i]를 구할때 마다 10007로 나눈 나머지를 구해준다. 3. 코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bbjxUU/btqBD1XYY6y/7Lk6UGl2xtYPEbyjHGDkHK/img.png)
0. 제목 백준 1463 1로 만들기 BOJ 1463 1로 만들기 C++ 1로 만들기 1. 문제 https://www.acmicpc.net/problem/1463 2. 풀이 DP 방식을 이용하였다. Top-down방식과 Bottom-up방식 중에 Top-down방식을 사용하였다. Top-down방식을 이용할 땐 dp 배열을 10^6 보다 큰 수로 채워놓으면 된다. 먼저 초기값을 설정한 후, dp[i] = 1 + dp[i-1], dp[i] = min(dp[i], 1 + dp[i/3]), dp[i] = min(dp[i], 1 + dp[i/2]) 와 같은 방법으로 연산횟수의 최솟값을 구한다. 3. 코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 #inclu..