๐ŸŒžAlgorithm/๐Ÿ”ฅBaekjoon

[Baekjoon] 11054_๊ฐ€์žฅ ๊ธด ๋ฐ”์ดํ† ๋‹‰ ๋ถ€๋ถ„ ์ˆ˜์—ด

๋ฟŒ์•ผ._. 2026. 1. 6. 11:25
๋ฌธ์ œ(์ถœ์ฒ˜: https://www.acmicpc.net/problem/11054)

< ๊ฐ€์žฅ ๊ธด ๋ฐ”์ดํ† ๋‹‰ ๋ถ€๋ถ„ ์ˆ˜์—ด >

 

๋ฌธ์ œ ํ’€์ด 

 

์ขŒ์ธก๋ถ€ํ„ฐ ์ฆ๊ฐ€ํ•˜๋Š” ๋ถ€๋ถ„ ์ˆ˜์—ด์„ ๊ตฌํ•˜๊ณ , ์šฐ์ธก๋ถ€ํ„ฐ ์ฆ๊ฐ€ํ•˜๋Š” ๋ถ€๋ถ„ ์ˆ˜์—ด์„ ๊ตฌํ•œ๋‹ค.

๊ทธ๋Ÿฌ๋ฉด ์ฆ๊ฐ€ํ•˜๋Š” ๋ถ€๋ถ„ ์ˆ˜์—ด, ๊ฐ์†Œํ•˜๋Š” ๋ถ€๋ถ„ ์ˆ˜์—ด, ๋ฐ”์ดํ† ๋‹‰ ์ˆ˜์—ด์˜ ๊ฐ€์žฅ ๊ธด ๊ฐ’์„ ๊ตฌํ•  ์ˆ˜ ์žˆ๋‹ค.

 

my solution (Java)

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

public class _11054_ { // ๊ฐ€์žฅ ๊ธด ๋ฐ”์ดํ† ๋‹‰ ๋ถ€๋ถ„ ์ˆ˜์—ด

	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 a[] = new int[n];
		st = new StringTokenizer(bf.readLine());

		for (int i = 0; i < n; i++) {
			a[i] = Integer.parseInt(st.nextToken());
		}

		int dp1[] = new int[n];
		int dp2[] = new int[n];

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

		for (int i = n - 1; i >= 0; i--) {
			dp2[i] = 1;
			for (int j = n - 1; j > i; j--) {
				if (a[i] > a[j]) {
					dp2[i] = Math.max(dp2[i], dp2[j] + 1);
				}
			}
		}

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

		System.out.println(result);
	}
๋ณ€์ˆ˜)
n : ์ˆ˜์—ด ํฌ๊ธฐ
a : ์ˆ˜์—ด
dp1, dp2 : ์ฆ๊ฐ€ํ•˜๋Š” ๋ถ€๋ถ„ ์ˆ˜์—ด, ๊ฐ์†Œํ•˜๋Š” ๋ถ€๋ถ„ ์ˆ˜์—ด
result : ๊ฐ€์žฅ ๊ธด ๋ฐ”์ดํ† ๋‹‰ ์ˆ˜์—ด์˜ ๊ธธ์ด 

 

์ˆ˜์—ด ํฌ๊ธฐ๋ฅผ ์ž…๋ ฅ๋ฐ›๋Š”๋‹ค. ์ˆ˜์—ด ํฌ๊ธฐ๋งŒํผ ์ˆ˜์—ด์„ ์ž…๋ ฅ๋ฐ›์•„ ๋ฐฐ์—ด a์— ์ €์žฅํ•œ๋‹ค. ์ขŒ์ธก๋ถ€ํ„ฐ ์ฆ๊ฐ€ํ•˜๋Š” ๋ถ€๋ถ„ ์ˆ˜์—ด์„ ๊ตฌํ•ด dp1์— ์ €์žฅํ•˜๊ณ , ์šฐ์ธก๋ถ€ํ„ฐ ์ฆ๊ฐ€ํ•˜๋Š” ๋ถ€๋ถ„ ์ˆ˜์—ด์„ ๊ตฌํ•ด dp2์— ์ €์žฅํ•œ๋‹ค. dp1๊ณผ dp2๋ฅผ ํƒ์ƒ‰ํ•˜๋ฉฐ ์ตœ๋Œ“๊ฐ’์„ ๊ตฌํ•œ๋‹ค. ์ตœ์ข… result๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค. 



 

'๐ŸŒžAlgorithm > ๐Ÿ”ฅBaekjoon' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[Baekjoon] 2294_๋™์ „ 2  (0) 2026.01.07
[Baekjoon] 14442_๋ฒฝ ๋ถ€์ˆ˜๊ณ  ์ด๋™ํ•˜๊ธฐ 2  (0) 2026.01.05
[Baekjoon] 25101_Robin Hood  (0) 2025.12.18
[Baekjoon] 27589_Streets Ahead  (0) 2025.12.17
[Baekjoon] 6235_Argus  (0) 2025.12.16