๐ŸŒžAlgorithm/๐Ÿ”ฅBaekjoon

[Baekjoon] 1965_์ƒ์ž๋„ฃ๊ธฐ

๋ฟŒ์•ผ._. 2026. 1. 8. 10:45
๋ฌธ์ œ(์ถœ์ฒ˜: https://www.acmicpc.net/problem/1965)

< ์ƒ์ž๋„ฃ๊ธฐ >

 

๋ฌธ์ œ ํ’€์ด 

 

์•ž์— ์žˆ๋Š” ์ƒ์ž์˜ ํฌ๊ธฐ๊ฐ€ ๋’ค์— ์žˆ๋Š” ์ƒ์ž์˜ ํฌ๊ธฐ๋ณด๋‹ค ์ž‘์€ ๊ฒฝ์šฐ ๋„ฃ์„ ์ˆ˜ ์žˆ๋‹ค๋ฉด, ์ค‘์ฒฉ ๋ฐ˜๋ณต๋ฌธ์„ ์‚ฌ์šฉํ•˜์—ฌ ํ˜„์žฌ ์œ„์น˜๋ณด๋‹ค ์•ž์— ์žˆ๋Š” ์ƒ์ž์˜ ํฌ๊ธฐ๊ฐ€ ์ž‘์œผ๋ฉด ํ˜„์žฌ ์œ„์น˜ ๊ฐ’๊ณผ, ์•ž์— ์ƒ์ž ์œ„์น˜์˜ ๊ฐ’ +1์„ ๋น„๊ตํ•˜์—ฌ ์ตœ๋Œ“๊ฐ’์œผ๋กœ ์—…๋ฐ์ดํŠธํ•œ๋‹ค.

 

๋งŒ์•ฝ, ์˜ˆ์ œ๊ฐ€ ์•„๋ž˜์™€ ๊ฐ™๋‹ค๋ฉด

8
1 6 2 5 7 3 5 6

 

๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ‘œ๊ฐ€ ์ฑ„์›Œ์ง„๋‹ค.

box 1 6 2 5 7 3 5 6
  1 2 2 3 4 3 4 5

 

 

my solution (Java)

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

public class _1965_ { // ์ƒ์ž๋„ฃ๊ธฐ

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

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

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

		int dp[] = new int[n];
		for (int i = 0; i < n; i++) {
			dp[i] = 1;
		}

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

		int result = 1;
		for (int i = 0; i < n; i++) {
			result = Math.max(result, dp[i]);
		}
		
		System.out.println(result);
	}
๋ณ€์ˆ˜)
n : ์ƒ์ž์˜ ๊ฐœ์ˆ˜
box : ์ƒ์ž์˜ ํฌ๊ธฐ
dp : ๊ฐ ์œ„์น˜์—์„œ ๋„ฃ์„ ์ˆ˜ ์žˆ๋Š” ์ตœ๋Œ€์˜ ์ƒ์ž ๊ฐœ์ˆ˜ 
result : ๋„ฃ์„ ์ˆ˜ ์žˆ๋Š” ์ตœ๋Œ€์˜ ์ƒ์ž ๊ฐœ์ˆ˜ 

 

์ƒ์ž์˜ ๊ฐœ์ˆ˜๋ฅผ ์ž…๋ ฅ๋ฐ›๋Š”๋‹ค. ์ƒ์ž์˜ ๊ฐœ์ˆ˜๋งŒํผ ์ƒ์ž์˜ ํฌ๊ธฐ๋ฅผ ์ž…๋ ฅ๋ฐ›์•„ box ๋ฐฐ์—ด์— ์ €์žฅํ•œ๋‹ค. ๊ฐ ์œ„์น˜์—์„œ ๋„ฃ์„ ์ˆ˜ ์žˆ๋Š” ์ตœ๋Œ€์˜ ์ƒ์ž ๊ฐœ์ˆ˜๋ฅผ ๊ตฌํ•˜๊ธฐ ์œ„ํ•ด ๋ฐฐ์—ด์„ 1๋กœ ์ดˆ๊ธฐํ™”ํ•œ๋‹ค. for๋ฌธ์„ ํ™œ์šฉํ•˜์—ฌ ํ˜„์žฌ ์œ„์น˜์—์„œ ์•ž์˜ ์ƒ์ž๋ฅผ ํƒ์ƒ‰ํ•˜๋ฉฐ ํ˜„์žฌ ์ƒ์ž๋ณด๋‹ค ์ž‘๋‹ค๋ฉด ์ตœ๋Œ“๊ฐ’์œผ๋กœ ์—…๋ฐ์ดํŠธํ•œ๋‹ค. 

 

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