์šฐ๊ทœ์ด์ธ์šฐ์œค
Eager To Learn ๐ŸŒŒ
์šฐ๊ทœ์ด์ธ์šฐ์œค
์ „์ฒด ๋ฐฉ๋ฌธ์ž
์˜ค๋Š˜
์–ด์ œ

๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

  • ๐Ÿก ํ™ˆ
  • ๐Ÿš€ ๊นƒํ—ˆ๋ธŒ
  • โ›… ํƒœ๊ทธ ํด๋ผ์šฐ๋“œ
  • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (217)
    • ๐Ÿ‘จ๐Ÿปโ€๐Ÿ’ป PS (170)
      • JAVA (82)
      • MYSQL (1)
      • Docker (2)
      • PYTHON (24)
      • LeetCode 150 (39)
      • Algorithm ๊ธฐ๋ฒ• (1)
      • ๋ฐ”ํ‚น๋… (21)
    • ๋ธ”๋กœ๊ทธ ์ด์‚ฌ (0)
    • Error (1)
    • CS (15)
      • DataBase (2)
      • OS (7)
      • Network (1)
      • Spring (1)
      • ์ž๋ฃŒ๊ตฌ์กฐ (3)
      • Java (1)
    • Learned (7)
      • Spring (7)
    • ๊ฐœ๋ฐœ์„œ์  (15)
      • ๊ฐ€์ƒ ๋ฉด์ ‘ ์‚ฌ๋ก€๋กœ ๋ฐฐ์šฐ๋Š” ๋Œ€๊ทœ๋ชจ ์‹œ์Šคํ…œ ์„ค๊ณ„ ๊ธฐ์ดˆ (1)
      • ์˜ค๋ธŒ์ ํŠธ - ์กฐ์˜ํ˜ธ (7)
      • ์นœ์ ˆํ•œ SQL ํŠœ๋‹ (7)
    • ํšŒ๊ณ  (2)
hELLO ยท Designed By ์ •์ƒ์šฐ.
์šฐ๊ทœ์ด์ธ์šฐ์œค
๐Ÿ‘จ๐Ÿปโ€๐Ÿ’ป PS/JAVA

[JAVA] ๋ฐฑ์ค€ 11055๋ฒˆ ใ€๊ฐ€์žฅ ํฐ ์ฆ๊ฐ€ ๋ถ€๋ถ„ ์ˆ˜์—ดใ€‘

๐Ÿ‘จ๐Ÿปโ€๐Ÿ’ป PS/JAVA

[JAVA] ๋ฐฑ์ค€ 11055๋ฒˆ ใ€๊ฐ€์žฅ ํฐ ์ฆ๊ฐ€ ๋ถ€๋ถ„ ์ˆ˜์—ดใ€‘

2022. 9. 21. 19:08


dp ๋ฐฐ์—ด์„ ์ƒ์„ฑํ•˜๊ณ  dp[i]์—๋Š” i ๋ฒˆ์งธ ์›์†Œ๊ฐ€ ํ˜•์„ฑํ•˜๊ณ  ์žˆ๋Š” ๋ถ€๋ถ„ ์ˆ˜์—ด์˜ ํ•ฉ์„ ๋„ฃ์„ ๊ฒƒ์ด๋‹ค.

 

์ฆ‰, dp[i] ๋Š” ์ˆ˜์—ด์˜ i๋ฒˆ์งธ ์›์†Œ๊นŒ์ง€ ๊ฐ€์žฅ ํฐ ๋ถ€๋ถ„์ˆ˜์—ด์˜ ํ•ฉ์„ ๊ธฐ๋กํ•  ๊ฒƒ์ด๋‹ค.

 

์˜ˆ๋ฅผ ๋“ค๋ฉด A = [1 2 3 10 5 14] ๊ฐ€ ์žˆ๋‹ค๊ณ  ํ• ๋•Œ

 

dp = [1 3(1+2) 6(1+2+3) 16(1+2+3+10) 11(1+2+3+5) 30(1+2+3+10+14)] 

     = [1 3 6 11 16 30] 

์ด ๋˜๋Š” ๊ฒƒ์ด๋‹ค.

 

์—ฌ๊ธฐ์„œ ์ค‘์ ์ ์œผ๋กœ ๋ด์•ผํ•  ํฌ์ธํŠธ๋Š”, dp[5]๋ฅผ ๊ตฌํ• ๋•Œ์ด๋‹ค.

 

๋ถ€๋ถ„ ์ˆ˜์—ด์˜ ๊ฒฝ์šฐ์˜ ์ˆ˜๊ฐ€ 2๊ฐ€์ง€ ์กด์žฌํ•œ๋‹ค.

 

[1 2 3 5 14 ] ์ฆ‰, ์ดํ•ฉ์ด 25๊ฐ€ ๋˜๋Š” ๊ฒฝ์šฐ์™€

[1 2 3 10 14] ์ฆ‰, ์ดํ•ฉ์ด 30์ด ๋˜๋Š” ๊ฒฝ์šฐ์˜ ์ˆ˜๊ฐ€ ์กด์žฌํ•œ๋‹ค.

 

์ฑ„์šฐ๋Š” ๋ฐฉ๋ฒ•์€, 30๋ณด๋‹ค ์ž‘์€ ์›์†Œ๋ฅผ ๋ฐœ๊ฒฌํ•˜๋ฉด, ๊ทธ ์›์†Œ๊ฐ€ ๊ฐ–๊ณ ์žˆ๋Š” dp๊ฐ’์— ์ž๊ธฐ ์ž์‹ (30)์„ ๋”ํ•œ ๊ฐ’์ด

 

30๊นŒ์ง€์˜ ๋ถ€๋ถ„์ˆ˜์—ด์˜ ํ•ฉ์ด ๋œ๋‹ค.

 

30๋ณด๋‹ค ์ž‘์€์›์†Œ๊ฐ€ ๊ฐ–๊ณ ์žˆ๋Š” dp๊ฐ’์— ์ž๊ธฐ์ž์‹ (30)์„ ๋”ํ•œ ๊ฐ’์ด ์ด๋ฏธ ๊ธฐ๋ก๋œ ๋ถ€๋ถ„์ˆ˜์—ด์˜ ํ•ฉ๋ณด๋‹ค ์ž‘์€ ๊ฒฝ์šฐ๋Š” ์—…๋ฐ์ดํŠธ ํ•˜์ง€ ์•Š์œผ๋ฉด ๋œ๋‹ค.

 


 

dp[5] ์„ ์ฑ„์›Œ์•ผ ํ•˜๋Š” ์ƒํ™ฉ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ด๋ณด์ž

 

dp[4] ๊นŒ์ง€๋Š” ์ด๋ฏธ ํ•ด๋‹น ์›์†Œ๊ฐ€ ์ด๋ฃจ๊ณ  ์žˆ๋Š” ๋ถ€๋ถ„์ˆ˜์—ด ์ค‘ ๊ฐ€์žฅ ํฐ ์ดํ•ฉ์ด ๊ธฐ๋ก๋˜์–ด ์žˆ๋‹ค.

 

 

 

 

 

Array[0] = 1 < Array[5] = 14  ์กฐ๊ฑด์„ ๋งŒ์กฑํ•œ๋‹ค.

 

๋˜ํ•œ, dp[5] = 0 < dp[0] + Array[5] = 1+14 ๋งŒ์กฑํ•˜๋ฏ€๋กœ, dp[5]= dp[0] +Array[5] = 15 ์œผ๋กœ ์—…๋ฐ์ดํŠธํ•œ๋‹ค.

 

 

 

Array[1] = 2 < Array[5] = 14  ์กฐ๊ฑด์„ ๋งŒ์กฑํ•œ๋‹ค.

 

๋˜ํ•œ, dp[5] = 15 < dp[1] + Array[5] = 3+14 =17 ๋งŒ์กฑํ•˜๋ฏ€๋กœ, dp[5]= dp[1] +Array[5] = 17 ์œผ๋กœ ์—…๋ฐ์ดํŠธํ•œ๋‹ค.

 

 

 

 

Array[2] = 3 < Array[5] = 14  ์กฐ๊ฑด์„ ๋งŒ์กฑํ•œ๋‹ค.

 

๋˜ํ•œ, dp[5] = 17 < dp[2]+ Array[5] = 6+14 =20 ๋งŒ์กฑํ•˜๋ฏ€๋กœ, dp[5]= dp[2] +Array[5] = 20 ์œผ๋กœ ์—…๋ฐ์ดํŠธํ•œ๋‹ค.

 

 

 

 

 

Array[3] = 10 < Array[5] = 14  ์กฐ๊ฑด์„ ๋งŒ์กฑํ•œ๋‹ค.

 

๋˜ํ•œ, dp[5] = 20 < dp[3] + Array[5] = 16+14 =30 ๋งŒ์กฑํ•˜๋ฏ€๋กœ, dp[5]= dp[1] +Array[5] = 30 ์œผ๋กœ ์—…๋ฐ์ดํŠธํ•œ๋‹ค.

 

 

 

 

Array[4] = 5 < Array[5] = 14  ๋งŒ์กฑํ•œ๋‹ค.

 

ํ•˜์ง€๋งŒ, dp[5] = 30 >  dp[4] + Array[5] = 11+14 =25 ์กฐ๊ฑด์„ ๋ถˆ๋งŒ์กฑํ•˜๋ฏ€๋กœ, ์—…๋ฐ์ดํŠธํ•˜์ง€ ์•Š๊ณ  dp[5] = 30์œผ๋กœ ์œ ์ง€ํ•œ๋‹ค.

 

๊ฒฐ๊ณผ์ ์œผ๋กœ ๊ฐ€์žฅ ํฐ ๋ถ€๋ถ„์ˆ˜์—ด์ด ๊ธฐ๋ก๋œ๋‹ค.

 

 

 


import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;

public class Main {
	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		int N = Integer.valueOf(br.readLine());
		int[] dp = new int[N + 1];
		int[] array = new int[N + 1];
		String[] input = br.readLine().split(" "); // ์ˆ˜์—ด์„ split์„ ์ด์šฉํ•˜์—ฌ ๊ณต๋ฐฑ์„ ๊ธฐ์ค€์œผ๋กœ ๋‚˜๋ˆˆ String ๋ฐฐ์—ด๋กœ ์ž…๋ ฅ ๋ฐ›๋Š”๋‹ค.
		
		
		for (int i = 1; i <= N; i++) {
			array[i] = Integer.valueOf(input[i - 1]); //์ž…๋ ฅ๋ฐ›์€ ์ˆ˜์—ด์ด String์ด๊ธฐ ๋•Œ๋ฌธ์—, int๋กœ ๋ฐ”๊พผ ํ›„ array ๋ฐฐ์—ด์„ ์ฑ„์šด๋‹ค.
			dp[i]=array[i];
		}

		for (int i = 1; i <= N; i++) {
			for (int j = 1; j < i; j++) {
				if (array[i] > array[j] && dp[j] + array[i] > dp[i]) { 
                //1 ~ i-1 ๋ฒˆ์งธ ์›์†Œ๋“ค ์ค‘ i๋ณด๋‹ค ์ž‘์€ ๊ฒฝ์šฐ ๊ทธ๋ฆฌ๊ณ  ํ˜„์žฌ dp[i] ๋ณด๋‹ค dp[j]+array[i]๊ฐ€ ํฐ ๊ฒฝ์šฐ ์—…๋ฐ์ดํŠธ
					dp[i] = dp[j] + array[i]; 
                    
				}

			}
		}
		System.out.println(Arrays.toString(dp));
		Arrays.sort(dp); //dp๋ฅผ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•ด์คŒ
		System.out.println(Arrays.toString(dp));
		System.out.println(dp[N]); // ์ œ์ผ ๋’ค์—์žˆ๋Š” ๊ฐ’์ด ์ตœ๋Œ“๊ฐ’์ผ ๊ฒƒ

	}
}
    '๐Ÿ‘จ๐Ÿปโ€๐Ÿ’ป PS/JAVA' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
    • [JAVA] ๋ฐฑ์ค€ 11054๋ฒˆ ใ€๊ฐ€์žฅ ๊ธด ๋ฐ”์ดํ† ๋‹‰ ๋ถ€๋ถ„ ์ˆ˜์—ดใ€‘
    • [JAVA] ๋ฐฑ์ค€ 11722๋ฒˆ ใ€๊ฐ€์žฅ ๊ธด ๊ฐ์†Œํ•˜๋Š” ๋ถ€๋ถ„ ์ˆ˜์—ดใ€‘
    • [JAVA] ๋ฐฑ์ค€ 11053๋ฒˆ ใ€๊ฐ€์žฅ ๊ธด ์ฆ๊ฐ€ํ•˜๋Š” ๋ถ€๋ถ„ ์ˆ˜์—ดใ€‘
    • [JAVA] ๋ฐฑ์ค€ 2156๋ฒˆ ใ€ํฌ๋„์ฃผ ์‹œ์‹ใ€‘
    ์šฐ๊ทœ์ด์ธ์šฐ์œค
    ์šฐ๊ทœ์ด์ธ์šฐ์œค
    ๊ฐœ๋ฐœ์ž ๊ฟˆ๋‚˜๋ฌด

    ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”

    ๋‹จ์ถ•ํ‚ค

    ๋‚ด ๋ธ”๋กœ๊ทธ

    ๋‚ด ๋ธ”๋กœ๊ทธ - ๊ด€๋ฆฌ์ž ํ™ˆ ์ „ํ™˜
    Q
    Q
    ์ƒˆ ๊ธ€ ์“ฐ๊ธฐ
    W
    W

    ๋ธ”๋กœ๊ทธ ๊ฒŒ์‹œ๊ธ€

    ๊ธ€ ์ˆ˜์ • (๊ถŒํ•œ ์žˆ๋Š” ๊ฒฝ์šฐ)
    E
    E
    ๋Œ“๊ธ€ ์˜์—ญ์œผ๋กœ ์ด๋™
    C
    C

    ๋ชจ๋“  ์˜์—ญ

    ์ด ํŽ˜์ด์ง€์˜ URL ๋ณต์‚ฌ
    S
    S
    ๋งจ ์œ„๋กœ ์ด๋™
    T
    T
    ํ‹ฐ์Šคํ† ๋ฆฌ ํ™ˆ ์ด๋™
    H
    H
    ๋‹จ์ถ•ํ‚ค ์•ˆ๋‚ด
    Shift + /
    โ‡ง + /

    * ๋‹จ์ถ•ํ‚ค๋Š” ํ•œ๊ธ€/์˜๋ฌธ ๋Œ€์†Œ๋ฌธ์ž๋กœ ์ด์šฉ ๊ฐ€๋Šฅํ•˜๋ฉฐ, ํ‹ฐ์Šคํ† ๋ฆฌ ๊ธฐ๋ณธ ๋„๋ฉ”์ธ์—์„œ๋งŒ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค.