본문 바로가기

알고리즘/DP6

[백준] 1309번 동물원 #Java 내가 푼 풀이가 틀렸다고 나왔길래 정답을 찾아서 비교해보는 과정을 거쳤다. 괄호를 붙이지 않아 우선순위 적용이 잘못 되었었다. - 수정 전 dp2[0][i] = dp2[0][i-1]+dp2[1][i-1]+dp2[2][i-1] % 9901; dp2[1][i] = dp2[0][i-1]+dp2[2][i-1] % 9901; dp2[2][i] = dp2[0][i-1]+dp2[1][i-1] % 9901; - 수정 후 dp2[0][i] = (dp2[0][i-1]+dp2[1][i-1]+dp2[2][i-1]) % 9901; dp2[1][i] = (dp2[0][i-1]+dp2[2][i-1]) % 9901; dp2[2][i] = (dp2[0][i-1]+dp2[1][i-1]) % 9901; - 풀이 코드 import java.. 2022. 5. 30.
[백준] 2775번 부녀회장이 될테야 #Java #DP import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.*; public class Main { static int [][] dp = new int[15][15]; public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int tc = Integer.parseInt(br.readLine()); for (int i = 0; i < tc; i++) { int n = Integer.pars.. 2022. 5. 7.
[백준] 11050번 이항 계수 1 #Java import java.util.*; public class Main { static int [][] dp = new int[100][100]; public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int m = sc.nextInt(); System.out.println(solution(n, m)); } private static int solution(int n, int m) { if(dp[n][m]>0) return dp[n][m]; else if(n==m || m == 0) return 1; else return dp[n][m] = solution(n-1,m-1) + solut.. 2022. 5. 7.
[백준] 2xN 타일링 https://www.acmicpc.net/problem/11726 11726번: 2×n 타일링 2×n 크기의 직사각형을 1×2, 2×1 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오. 아래 그림은 2×5 크기의 직사각형을 채운 한 가지 방법의 예이다. www.acmicpc.net def solution(n): dp = [0] * (n + 1) for i in range(n+1): dp[i] = i if i 2021. 11. 17.