[백준] 9184번 신나는 함수 실행 JAVA (자바) 풀이
문제 9184번 (DP) : 재귀함수 w(a, b, c)가 있다if a 20 or b > 20 or c > 20, then w(a, b, c) returns: w(20, 20, 20)if a a, b, c가 주어졌을 때, w(a, b, c)를 출력하는 프로그램 otherwise w(2a-2, 2b, c) 출력력 [입력] : 입력은 세 정수 a, b, c로 이루어져 있으며, 한 줄에 하나씩 주어진다 (입력의 마지막은 -1 -1 -1로 나타내며, 세 정수가 모두 -1인 경우는 입력의 마지막을 제외하면 없다) [출력] : w(a, b, c)를 출력 [설명] DP 알고리즘: 이미 계산된 결과는 별도의 메모리 영역에 저장하여 다시 계산하지 않음으로서 수행 시간 단축시키는 방법 ..
2024. 7. 2.
[백준] 11055번 가장 큰 증가하는 부분 수열 JAVA (자바) 풀이
문제 11055번 (DP) : 수열 A가 주어졌을 때, 그 수열의 증가하는 부분 수열 중에서 합이 가장 큰 것을 구해라 예를 들어, 수열 A = {1, 100, 2, 50, 60, 3, 5, 6, 7, 8} 인 경우에 합이 가장 큰 증가하는 부분 수열은 A = {1, 100, 2, 50, 60, 3, 5, 6, 7, 8} 이고, 합은 113 [입력] : 첫째 줄에 수열 A의 크기 N (1 ≤ N ≤ 1,000) 둘째 줄에는 수열 A를 이루고 있는 Ai (1 ≤ Ai ≤ 1,000) [출력] : 수열 A의 합이 가장 큰 증가하는 부분 수열의 합을 출력 [설명] DP 알고리즘: 이미 계산된 결과는 별도의 메모리 영역에 저장하여 다시 계산하지 않음으로서 수행 시간 단축시키는 방법 ..
2024. 7. 1.
[백준] 1912번 연속합 JAVA (자바) 풀이
문제 1912번 (DP) : n개의 정수로 이루어진 임의의 수열 연속된 몇 개의 수를 선택해서 가장 큰 합을 구해라 (1개 이상 선택) 예를 들어서 10, -4, 3, 1, 5, 6, -35, 12, 21, -1 이라는 수열일 때 답은 12+21인 33이다 [입력] : 첫째 줄에 정수 n(1 ≤ n ≤ 100,000) 둘째 줄에는 n개의 정수로 이루어진 수열 (수는 -1,000보다 크거나 같고, 1,000보다 작거나 같은 정수) [출력] : 첫째 줄에 답을 출력 [설명] DP 알고리즘: 이미 계산된 결과는 별도의 메모리 영역에 저장하여 다시 계산하지 않음으로서 수행 시간 단축시키는 방법 DP 구현 방법은 일반적으로 Top-down(하향식)과 Bottom-up(상향식)..
2024. 6. 30.
[백준] 9461번 파도반 수열 JAVA (자바) 풀이
문제 9461번 (DP) : 첫 삼각형은 정삼각형으로 변의 길이는 1 다음과 같은 과정으로 정삼각형을 계속 추가한다 가장 긴 변의 길이를 k라 할 때, 변 길이가 k인 정삼각형을 추가 파도반 수열 P(N)은 나선에 있는 정삼각형의 변의 길이 P(1)부터 P(10)까지 첫 10개 숫자는 1, 1, 1, 2, 2, 3, 4, 5, 7, 9이다. P(N)을 구하는 프로그램을 작성하시오 [입력] : 첫째 줄에 테스트 케이스의 개수 T 각 테스트 케이스는 한 줄로 이루어져 있고, N이 주어진다 (1 ≤ N ≤ 100) [출력] : 각 테스트 케이스마다 P(N)을 출력 [설명] DP 알고리즘: 이미 계산된 결과는 별도의 메모리 영역에 저장하여 다시 계산하지 않음으로서 수행 시간 단축시키는 ..
2024. 6. 30.