-
728x90
DP - 1463, 11726, 11727, 9095, 10844, 11057, 2193, 9465, 2156, 11053, 11055, 11722, 11054, 1912, 2579, 1699, 2133, 9461, 2225, 2011, 11052
출처: https://plzrun.tistory.com/entry/알고리즘-문제풀이PS-시작하기 [plzrun's algorithm]change Nxxxx -> Main && remove package lines!!!
이클립스에서 작성하면서 문제 이름으로 클래스를 생성하여 풀었기 때문에
클래스 이름을 Main으로 바꾸고, package 부분도 지우고 제출해야 정상적으로 돌아갑니다.
<풀이> - Bottom up
12345678910111213141516171819202122232425262728293031package dp;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;public class N11727 {public static void main(String[] args) throws NumberFormatException, IOException {BufferedReader br = new BufferedReader(new InputStreamReader(System.in));int n = Integer.parseInt(br.readLine());int d[] = new int[n+1];for(int i=0; i<n+1; i++) {if(i ==1) {d[i] = 1;}else if(i ==2){d[i] = 3;}else if(i>=3){d[i] = d[i-1] + 2*(d[i-2]);d[i] %=10007;}}System.out.println(d[n]);}}Colored by Color Scripter<풀이> - Top down
1234567891011121314151617181920212223242526272829303132package dp;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;public class N11727_TD {public static int d[];public static void main(String[] args) throws NumberFormatException, IOException {BufferedReader br = new BufferedReader(new InputStreamReader (System.in));int n = Integer.parseInt(br.readLine());d = new int[n+1];System.out.println(calc(n));}public static int calc(int n) {if(n ==0 || n ==1) return 1;if(d[n]>0) return d[n];d[n] = 2 *calc(n-2) + calc(n-1);d[n] %= 10007;return d[n];}}Colored by Color Scripter이와 같은 DP문제 풀이에서 핵심 부분은 점화식을 구하는 과정인데,
이 문제의 경우 11726번 문제에서 2*2 의 타일이 더해진 형식입니다.
2*2타일로 인해 누운 타일이 2개 추가되는 d[n-2]가 2개 있는 것과 같습니다.
Github: https://github.com/jaeuk9407/AlgorithmBOJ
'Algorithms' 카테고리의 다른 글
[백준 알고리즘] (DP)10844번 Java 2가지 풀이 (0) 2020.03.14 [백준 알고리즘] (DP) 9095번 Java 2가지 풀이 (0) 2020.03.12 [백준 알고리즘] (DP) 11726번 Java 풀이 (0) 2020.03.11 [백준 알고리즘] (DP) 1463번 Java 풀이 (0) 2020.03.10 [백준 알고리즘] (I/O) 10992번 Java 풀이 (0) 2020.03.09 댓글