๐ŸŒžAlgorithm/๐Ÿ”ฅBaekjoon

[Baekjoon] 6221_The Bale Tower

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

< The Bale Tower >

 

๋ฌธ์ œ ํ’€์ด 

 

๊ฑด์ดˆ ๋”๋ฏธ๋ฅผ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌ ํ›„ ํƒ์ƒ‰ํ•˜๋ฉฐ ์•ž์˜ ๊ฑด์ดˆ ๋”๋ฏธ๊ฐ€ ํ˜„์žฌ ๊ฑด์ดˆ ๋”๋ฏธ๋ณด๋‹ค ๋„ˆ๋น„์™€ ๊นŠ์ด๊ฐ€ ๋ชจ๋‘ ์ž‘์€์ง€ ํ™•์ธํ•œ๋‹ค. 

 

my solution (Java)

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.StringTokenizer;

public class _6221_ { // The Bale Tower
	static class Pair {
		int w, b;

		public Pair(int w, int b) {
			this.w = w;
			this.b = b;
		}
	}

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

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

		ArrayList<Pair> list = new ArrayList<>();
		int dp[] = new int[n];

		for (int i = 0; i < n; i++) {
			st = new StringTokenizer(bf.readLine());
			list.add(new Pair(Integer.parseInt(st.nextToken()), Integer.parseInt(st.nextToken())));
			dp[i] = 1;
		}

		Collections.sort(list, new Comparator<Pair>() {

			@Override
			public int compare(Pair o1, Pair o2) {
				if (o1.w == o2.w) {
					return o1.b - o2.b;
				}
				return o1.w - o2.w;
			}
		});

		for (int i = 1; i < n; i++) {
			for (int j = 0; j < i; j++) {
				if (list.get(j).w < list.get(i).w && list.get(j).b < list.get(i).b) {
					dp[i] = Math.max(dp[i], dp[j] + 1);
				}
			}
		}

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

		System.out.println(result);
	}
}
๋ณ€์ˆ˜)
n : ๊ฑด์ดˆ ๋”๋ฏธ์˜ ๊ฐœ์ˆ˜
list : ๊ฑด์ดˆ ๋”๋ฏธ์˜ ์ •๋ณด๋ฅผ ์ €์žฅํ•˜๋Š” ArrayList
dp : ๊ทœ์น™์„ ์ง€์ผœ ์Œ“์„ ์ˆ˜ ์žˆ๋Š” ํƒ‘์˜ ๋†’์ด 
result : ๊ทœ์น™์„ ์ง€์ผœ ์Œ“์„ ์ˆ˜ ์žˆ๋Š” ๊ฐ€์žฅ ๋†’์€ ํƒ‘์˜ ๋†’์ด 

 

๊ฑด์ดˆ ๋”๋ฏธ์˜ ๊ฐœ์ˆ˜๋ฅผ ์ž…๋ ฅ๋ฐ›๋Š”๋‹ค. ๊ฑด์ดˆ ๋”๋ฏธ์˜ ๊ฐœ์ˆ˜๋งŒํผ ๊ฑด์ดˆ ๋”๋ฏธ ์ •๋ณด๋ฅผ ์ž…๋ ฅ๋ฐ›์•„ ArrayList์— ์ €์žฅํ•˜๊ณ , dp๋ฅผ 1๋กœ ์ดˆ๊ธฐํ™”ํ•œ๋‹ค. ๊ฑด์ดˆ ๋”๋ฏธ๋ฅผ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•œ๋‹ค. ๊ฑด์ดˆ ๋”๋ฏธ๋ฅผ ํƒ์ƒ‰ํ•˜๋ฉฐ ์•ž์˜ ๊ฑด์ดˆ ๋”๋ฏธ๊ฐ€ ํ˜„์žฌ ๊ฑด์ดˆ ๋”๋ฏธ๋ณด๋‹ค ๋„ˆ๋น„์™€ ๊นŠ์ด๊ฐ€ ๋ชจ๋‘ ์ž‘์€์ง€ ํ™•์ธํ•œ๋‹ค. 

 

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