티스토리 뷰

알고리즘/백준

백준 2229 (조 짜기) - java

김다미김태리신시아 2023. 5. 30. 17:06

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

 

2229번: 조 짜기

알고스팟 캠프에 N(1 ≤ N ≤ 1,000)명의 학생들이 참여하였다. 학생들은 열심히 공부를 하고 있었는데, 어느 날 조별 수업을 진행하기로 하였다. 조별 수업의 목적은 잘 하는 학생들과 덜 잘 하는

www.acmicpc.net

DP 문제이다. 

import java.io.*;
import java.util.*;
public class Main {
    static int n = 0;
    static int[] board = new int[1001];
    static int[] dp = new int[1001];
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        n = Integer.parseInt(br.readLine());
        StringTokenizer st = new StringTokenizer(br.readLine()," ");
        for(int i=1;i<=n;i++)
        {
            board[i] = Integer.parseInt(st.nextToken());
        }

        dp[1] = 0;
        if(n>=2)
        {
            dp[2] = Math.abs(board[2] - board[1]);
        }
        for(int i=3;i<=n;i++)
        {
            int max = board[i];
            int min = board[i];
            for(int j=i-1;j>=1;j--)
            {
                max = Math.max(max,board[j]);
                min = Math.min(min,board[j]);

                dp[i] = Math.max(dp[i],(max - min) + dp[j-1]);
            }
        }
        System.out.println(dp[n]);
        br.close();

    }
}

'알고리즘 > 백준' 카테고리의 다른 글

백준 6087 (레이저 통신) - java  (0) 2023.06.05
백준 17406 (배열 돌리기 4) - java  (0) 2023.05.31
백준 3151 (합이 0) - java  (0) 2023.05.30
백준 1079 (마피아) - java  (0) 2023.05.29
백준 2110 (공유기 설치) - java  (0) 2023.05.24