๐ŸŒžAlgorithm/๐Ÿ”ฅBaekjoon

[Baekjoon] 10571_๋‹ค์ด์•„๋ชฌ๋“œ

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

< ๋‹ค์ด์•„๋ชฌ๋“œ >

 

๋ฌธ์ œ ํ’€์ด 

 

๋‹ค์ด์•„๋ชฌ๋“œ๋ฅผ ์‚ดํŽด๋ณด๋ฉฐ ํ˜„์žฌ ๋‹ค์ด์•„๋ชฌ๋“œ๊ฐ€ ์•ž์— ๋‹ค์ด์•„๋ชฌ๋“œ๋ณด๋‹ค ์ค‘๋Ÿ‰์ด ๋†’๊ณ , ์„ ๋ช…๋„๊ฐ€ ๋‚ฎ์€์ง€ ํ™•์ธํ•œ๋‹ค. 

 

my solution (Java)

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

public class _10571_ { // ๋‹ค์ด์•„๋ชฌ๋“œ
	static class Pair {
		double w, c;

		public Pair(double w, double c) {
			this.w = w;
			this.c = c;
		}
	}

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

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

		for (int i = 0; i < t; i++) {
			int n = Integer.parseInt(bf.readLine());

			Pair arr[] = new Pair[n];
			int dp[] = new int[n];

			for (int j = 0; j < n; j++) {
				st = new StringTokenizer(bf.readLine());
				arr[j] = new Pair(Double.parseDouble(st.nextToken()), Double.parseDouble(st.nextToken()));
				dp[j] = 1;
			}

			for (int j = 1; j < n; j++) {
				for (int k = 0; k < j; k++) {
					if (arr[k].w < arr[j].w && arr[k].c > arr[j].c) {
						dp[j] = Math.max(dp[j], dp[k] + 1);
					}
				}
			}

			int result = 0;
			for (int j = 0; j < n; j++) {
				result = Math.max(result, dp[j]);
			}
			bw.write(result + "\n");
		}
		bw.flush();
	}
๋ณ€์ˆ˜)
t : ํ…Œ์ŠคํŠธ์ผ€์ด์Šค ๊ฐœ์ˆ˜
n : ๋‹ค์ด์•„๋ชฌ๋“œ์˜ ์ •๋ณด ๊ฐœ์ˆ˜
arr : ๋‹ค์ด์•„๋ชฌ๋“œ ์ •๋ณด
dp : ๊ฐ€์น˜๊ฐ€ ๋†’์•„์ง€๋Š” ๋‹ค์ด์•„๋ชฌ๋“œ ์ˆ˜
result : ๊ฐ€์น˜๊ฐ€ ๋†’์•„์ง€๋Š” ๋ถ€๋ถ„์—ด ์ค‘ ์ตœ์žฅ์˜ ๊ธธ์ด 

 

ํ…Œ์ŠคํŠธ์ผ€์ด์Šค ๊ฐœ์ˆ˜๋ฅผ ์ž…๋ ฅ๋ฐ›๋Š”๋‹ค. ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค ์ˆ˜๋งŒํผ ๋‹ค์Œ ๊ณผ์ •์„ ๋ฐ˜๋ณตํ•œ๋‹ค.

 

1) ๋‹ค์ด์•„๋ชฌ๋“œ ์ •๋ณด์˜ ๊ฐœ์ˆ˜๋ฅผ ์ž…๋ ฅ๋ฐ›๋Š”๋‹ค.

2) ๋‹ค์ด์•„๋ชฌ๋“œ ์ •๋ณด์˜ ๊ฐœ์ˆ˜๋งŒํผ ๋‹ค์ด์•„๋ชฌ๋“œ ์ •๋ณด๋ฅผ ์ž…๋ ฅ๋ฐ›์•„ arr์— ์ €์žฅํ•˜๊ณ , dp๋ฅผ 1๋กœ ์ดˆ๊ธฐํ™”ํ•œ๋‹ค.

3) ๋ฐฐ์—ด์„ ํƒ์ƒ‰ํ•˜๋ฉฐ ํ˜„์žฌ ๋‹ค์ด์•„๋ชฌ๋“œ๊ฐ€ ์•ž์— ๋‹ค์ด์•„๋ชฌ๋“œ๋ณด๋‹ค ์ค‘๋Ÿ‰์ด ๋†’๊ณ , ์„ ๋ช…๋„๊ฐ€ ๋‚ฎ๋‹ค๋ฉด dp ๊ฐ’์„ ์—…๋ฐ์ดํŠธํ•œ๋‹ค.

4) ์ตœ์ข… dp๋ฅผ ์‚ดํŽด๋ณด๋ฉฐ ์ตœ๋Œ“๊ฐ’์„ ๊ตฌํ•ด ์ถœ๋ ฅํ•œ๋‹ค.