본문 바로가기

Study/BaekJoon

[백준 자바JAVA] 14606번 - 피자 (Small)

728x90

https://www.acmicpc.net/problem/14606


● 문제

피자의 층 수를 계속해서 분해해 나가는 DP문제 중의 일부이다.

예를들어 피자가 5판인경우 먼저 3x2 = 6 으로 분리 시킨 후 2x1 + 1x1 = 3 으로 분리시킨다 1인 친구들은 더이상 분리가 불가능하지 그대로 두고 2를 1x1 = 1 로 분해시키면 총 6 + 3 + 1 = 10 이 얻을 수 있는 최대 즐거움이 된다.

이거를 표로 정리해보면

피자 판 수 1 2 3 4 5 6 7 8 9
행복도 0 1 3 6 10 15 21 28 36
증감량 0 +1 +2 +3 +4 +5 +6 +7 +8

 

표를 확인해보면 증감량이 일정하게 증가하는것을 확인할 수 있다!


● 코드

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[] dp = new int[N + 1];
        dp[0] = 0;

        for(int i = 1; i <= N; i++) {
            dp[i] += dp[i - 1] + i;
        }

        System.out.println(dp[N - 1]);
    }

}

 

728x90