반응형
🔺 문제
11052번: 카드 구매하기
첫째 줄에 민규가 구매하려고 하는 카드의 개수 N이 주어진다. (1 ≤ N ≤ 1,000) 둘째 줄에는 Pi가 P1부터 PN까지 순서대로 주어진다. (1 ≤ Pi ≤ 10,000)
www.acmicpc.net
🔺 코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
import java.util.*;
import java.io.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
int[] A = new int[N + 1];
StringTokenizer st = new StringTokenizer(br.readLine(), " ");
for(int i = 1 ; i <= N ; i++) {
A[i] = Integer.parseInt(st.nextToken());
}
int[] dp = new int[N + 1];
for(int i = 1 ; i <= N ; i++) {
for(int j = 1 ; j <= i ; j++) {
dp[i] = Math.max(dp[i], dp[i - j] + A[j]);
}
}
System.out.println(dp[N]);
}
}
|
cs |
✅ 해결 아이디어
✔ DP
- 카드 i개를 구매하는 경우
└ 카드 1개 가진 카드팩 구매 & 카드 i - 1 개 구입
└ 카드 2개 가진 카드팩 구매 & 카드 i - 2 개 구입
└ 카드 3개 가진 카드팩 구매 & 카드 i - 3 개 구입
≫ dp[ i ] = dp[ i - n ] + P[ n ]
⇨ 예제 입력 및 출력 결과
🔺 다른 풀이들
- 다들 비슷하심
💬 느낀 점
DP,,, 일반항 형태로 정의하면서 식을 찾아보자..
1회독 | 2회독 | 3회독 | 4회독 | 5회독 |
V | 240424 |
(참고)
✔ 멋진 점화식 구하는 과정 설명들.. 감사합니다..🙇♀️🙇♀️
[Java]백준 11052번 :: 카드 구매하기
백준 온라인 저지 11052번 - 카드 구매하기 Java 알고리즘 문제풀이 풀이 DP(다이나믹 프로그래밍) 문제입니다. 큰 문제를 작은 단위의 문제로 생각해서 푸는 알고리즘인데, 코딩테스트에 자주 출제
developer-mac.tistory.com
[백준/11052/Java] 카드 구매하기
문제링크 www.acmicpc.net/problem/11052 11052번: 카드 구매하기 첫째 줄에 민규가 구매하려고 하는 카드의 개수 N이 주어진다. (1 ≤ N ≤ 1,000) 둘째 줄에는 Pi가 P1부터 PN까지 순서대로 주어진다. (1 ≤ Pi
smartpro.tistory.com
반응형
'코테 > 백준' 카테고리의 다른 글
[백준/JAVA] 10971번: 외판원 순회 2 (0) | 2023.08.24 |
---|---|
[백준/JAVA] 14889번: 스타트와 링크 (0) | 2023.08.24 |
[백준/JAVA] 1459번: 걷기 (0) | 2023.08.23 |
[백준/JAVA] 9663번: N-Queen (0) | 2023.08.22 |
[백준/JAVA] 1759번: 암호 만들기 (0) | 2023.08.22 |