[BOJ] 11052번 카드 구매하기 - JAVA

최영환·2023년 2월 5일
0

BaekJoon

목록 보기
40/87
post-thumbnail

💡 문제


💬 입출력 예시


📌 풀이(소스코드)

import java.util.Scanner;

/**
 * ### 틀린 이유
 * 어느 부분을 놓친건지 아직 모르겠음
 *
 */
public class BOJ_11052 {
	static int n;
	static int[] p;
	static int[] dp = new int[1001];

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);

		n = sc.nextInt();
		p = new int[n+1];
		for (int i = 1; i <= n; i++) {
			p[i] = sc.nextInt();
		}

		/**
		 * 틀린 코드
		 * 테케는 다 통과하는데 제출하면 오답으로 뜸
		 * 어느 부분을 놓친건지 모르겠음
		 */
//		for (int i = 1; i <= n; i++) {
//			if (n % i == 0) {
//				dp[i] = Math.max(dp[i - 1], p[i] * n / i);
//			} else {
//				dp[i] = Math.max(dp[i - 1], p[i] + p[n - i]);
//			}
//		}

		for (int i = 1; i <= n; i++) {
			for (int j = 1; j <= i; j++) {
				dp[i] = Math.max(dp[i], dp[i - j] + p[j]);
			}
		}
		
		System.out.println(dp[n]);
	}
}

📄 해설

  • 틀렸는데 아직 이유를 제대로 찾지 못하였음 다음주에 다시 풀어볼 문제
profile
조금 느릴게요~

0개의 댓글