목록DP (28)
기록방
👉 문제링크 1904번: 01타일 지원이에게 2진 수열을 가르쳐 주기 위해, 지원이 아버지는 그에게 타일들을 선물해주셨다. 그리고 이 각각의 타일들은 0 또는 1이 쓰여 있는 낱장의 타일들이다. 어느 날 짓궂은 동주가 지원이 www.acmicpc.net 🔸 문제 분석 🔸 타일을 놓는 경우의 수를 n에 따라 나열하면 1, 2, 3, 5, 8...순으로 피보나치 수열이다. 🔸 코드 🔸 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int[] dp = new int[n+2]; dp[1] = 1; d..
👉 문제링크 14501번: 퇴사 첫째 줄에 백준이가 얻을 수 있는 최대 이익을 출력한다. www.acmicpc.net 🔸 문제 분석 🔸 N일동안 업무를 수행한다. N개의 업무의 처리에 필요한 시간 t와 받는 금액 p가 있다. 처리에 필요한 시간이 N일을 넘으면 처리 불가능하다. 받을 수 있는 금액의 최대값을 출력한다. 재귀 메소드로 브루트 포스 방식으로 풀이할 수 있다. 다이나믹 프로그래밍 방식으로 풀이할 수 있다. 🔸 코드 🔸 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int[] t = ..
👉 문제링크 2193번: 이친수 0과 1로만 이루어진 수를 이진수라 한다. 이러한 이진수 중 특별한 성질을 갖는 것들이 있는데, 이들을 이친수(pinary number)라 한다. 이친수는 다음의 성질을 만족한다. 이친수는 0으로 시작하지 않 www.acmicpc.net 🔸 문제 분석 🔸 자리수 n을 입력받고 만들 수 있는 이친수의 개수를 출력한다. 이친수는 이진수에서 맨 앞에 1이오고, 11처럼 1 두 개가 붙어서 나오는 경우가 없는 수를 말한다. 1부터 경우의 수를 따져보면 다음과 같다. /* n count pinary number 1 1 1 2 1 10 3 2 101 100 4 3 1000 1001 1010 5 5 10000 10001 10010 10100 10101 6 8 100000 100001 ..
👉 문제링크 13699번: 점화식 다음의 점화식에 의해 정의된 수열 t(n)을 생각하자: t(0)=1 t(n)=t(0)*t(n-1)+t(1)*t(n-2)+...+t(n-1)*t(0) 이 정의에 따르면, t(1)=t(0)*t(0)=1 t(2)=t(0)*t(1)+t(1)*t(0)=2 t(3)=t(0)*t(2)+t(1)*t(1)+t(2)*t(0)=5 ... 주어진 입력 0 ≤ n www.acmicpc.net 🔸 문제 분석 🔸 점화식으로 배열을 채우는 dp 문제이다. arr[0] = 1 arr[n] = arr[0]*arr[n-1] + arr[1]*arr[n-2] + ... + arr[n-1]*arr[0] 🔸 코드 🔸 import java.util.Scanner; public class Main { public ..
👉 문제링크 9625번: BABBA 상근이는 길을 걷다가 신기한 기계를 발견했다. 기계는 매우 매우 큰 화면과 버튼 하나로 이루어져 있다. 기계를 발견했을 때, 화면에는 A만 표시되어져 있었다. 버튼을 누르니 글자가 B로 변했 www.acmicpc.net 🔸 문제 분석 🔸 A에서 시작해서 버튼을 누를 때 마다 다음과 같은 규칙이 반복 된다. 모든 A는 B로 바뀐다. 모든 B는 BA로 바뀐다. k번 눌렀을때 A와 B의 개수를 출력한다. AB의 개수가 피보나치 수열 방식으로 증가한다. k = 0, 1 0 k = 1, 1 1 k = 2, 1 2 k = 3, 2 3 dp 리스트로 보면 : 1 0 1 1 2 3 .. 🔸 코드 🔸 import java.util.Scanner; public class Main { p..