๐ŸŒžAlgorithm/๐Ÿ”ฅBaekjoon

[Baekjoon] 19622_ํšŒ์˜์‹ค ๋ฐฐ์ • 3

๋ฟŒ์•ผ._. 2026. 2. 12. 17:13
๋ฌธ์ œ(์ถœ์ฒ˜: https://www.acmicpc.net/problem/19622)

< ํšŒ์˜์‹ค ๋ฐฐ์ • 3 >

 

๋ฌธ์ œ ํ’€์ด 

 

์ž„์˜์˜ ํšŒ์˜ k๋Š” k-1๊ณผ k+1 ํšŒ์˜์™€ ์‹œ๊ฐ„์ด ๊ฒน์น˜๊ณ  ๋‹ค๋ฅธ ํšŒ์˜๋“ค์€ ๊ฒน์น˜์ง€ ์•Š์œผ๋ฏ€๋กœ(k-2 ํšŒ์˜ + k ํšŒ์˜, k-1 ํšŒ์˜) ์ค‘์— ์ตœ๋Œ“๊ฐ’์„ ์„ ํƒํ•œ๋‹ค.

 

my solution (Java)

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

public class _19622_ { // ํšŒ์˜์‹ค ๋ฐฐ์ • 3
	static class Info {
		int start;
		int end;
		int num;

		public Info(int start, int end, int num) {
			this.start = start;
			this.end = end;
			this.num = num;
		}
	}

	public static void main(String[] args) throws IOException {
		BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
		StringTokenizer st;

		int n = Integer.parseInt(bf.readLine());

		Info arr[] = new Info[n];
		for (int i = 0; i < n; i++) {
			st = new StringTokenizer(bf.readLine());
			arr[i] = new Info(Integer.parseInt(st.nextToken()), Integer.parseInt(st.nextToken()),
					Integer.parseInt(st.nextToken()));
		}

		int dp[] = new int[n];
		dp[0] = arr[0].num;

		if (n > 1) {
			dp[1] = Math.max(dp[0], arr[1].num);
		}

		for (int i = 2; i < n; i++) {
			dp[i] = Math.max(dp[i - 2] + arr[i].num, dp[i - 1]);
		}

		int result = 0;
		for (int i = 0; i < n; i++) {
			result = Math.max(result, dp[i]);
		}

		System.out.println(result);
	}
}
๋ณ€์ˆ˜)
n : ํšŒ์˜์˜ ์ˆ˜
arr : ํšŒ์˜ ์ •๋ณด๋ฅผ ์ €์žฅํ•˜๋Š” ๋ฐฐ์—ด
dp : ํšŒ์˜๋ฅผ ์ง„ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ์ตœ๋Œ€ ์ธ์›์„ ๊ตฌํ•˜๋Š” ๋ฐฐ์—ด
result : ํšŒ์˜๋ฅผ ์ง„ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ์ตœ๋Œ€ ์ธ์›

 

ํšŒ์˜์˜ ์ˆ˜๋ฅผ ์ž…๋ ฅ๋ฐ›๋Š”๋‹ค. ํšŒ์˜์˜ ์ˆ˜๋งŒํผ ํšŒ์˜ ์ •๋ณด๋ฅผ ์ž…๋ ฅ๋ฐ›์•„ ๋ฐฐ์—ด์— ์ €์žฅํ•œ๋‹ค. dp์˜ 0๋ฒˆ์งธ๋ฅผ 0๋ฒˆ์งธ ํšŒ์˜์— ์ฐธ์„ํ•˜๋Š” ์ธ์›์œผ๋กœ, 1๋ฒˆ์งธ๋ฅผ 0๋ฒˆ์งธ์™€ 1๋ฒˆ์งธ ํšŒ์˜์— ์ฐธ์„ํ•˜๋Š” ์ธ์› ์ค‘ ์ตœ๋Œ“๊ฐ’์œผ๋กœ ์ดˆ๊ธฐํ™”ํ•œ๋‹ค. ๋‚˜๋จธ์ง€๋ฅผ ํƒ์ƒ‰ํ•˜๋ฉฐ ํ˜„์žฌ ํšŒ์˜๋ฅผ ์„ ํƒํ•œ๋‹ค๋ฉด dp[i-2]+ํ˜„์žฌ ํšŒ์˜ ์ฐธ์„ ์ธ์›, ํ˜„์žฌ ํšŒ์˜๋ฅผ ์„ ํƒํ•˜์ง€ ์•Š๋Š”๋‹ค๋ฉด dp[i-1] ์ด๋ฏ€๋กœ ๋‘˜ ์ค‘์— ์ตœ๋Œ“๊ฐ’์œผ๋กœ ์ €์žฅํ•œ๋‹ค. 

 

์ตœ์ข… dp๋ฅผ ํƒ์ƒ‰ํ•˜๋ฉฐ ์ตœ๋Œ“๊ฐ’์„ ์ถœ๋ ฅํ•œ๋‹ค.