๐Ÿ—๏ธ Algorithm/๐ŸŸฉ ๋ฐฑ์ค€

๐ŸŸฉ [๋ฐฑ์ค€] [Python] [Gold5] 2565๋ฒˆ_์ „๊นƒ์ค„

Dbswnstjd 2023. 4. 29. 18:48

๋ฌธ์ œ

https://www.acmicpc.net/problem/2565

 

2565๋ฒˆ: ์ „๊นƒ์ค„

์ฒซ์งธ ์ค„์—๋Š” ๋‘ ์ „๋ด‡๋Œ€ ์‚ฌ์ด์˜ ์ „๊นƒ์ค„์˜ ๊ฐœ์ˆ˜๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ์ „๊นƒ์ค„์˜ ๊ฐœ์ˆ˜๋Š” 100 ์ดํ•˜์˜ ์ž์—ฐ์ˆ˜์ด๋‹ค. ๋‘˜์งธ ์ค„๋ถ€ํ„ฐ ํ•œ ์ค„์— ํ•˜๋‚˜์”ฉ ์ „๊นƒ์ค„์ด A์ „๋ด‡๋Œ€์™€ ์—ฐ๊ฒฐ๋˜๋Š” ์œ„์น˜์˜ ๋ฒˆํ˜ธ์™€ B์ „๋ด‡๋Œ€์™€ ์—ฐ๊ฒฐ๋˜๋Š”

www.acmicpc.net

ํ’€์ด

# ๋ฐฑ์ค€ 2565๋ฒˆ ๋ฌธ์ œ - ์ „๊นƒ์ค„
n = int(input())
line = sorted([list(map(int, input().split())) for _ in range(n)])
dp = [1] * n
for i in range(n):
    for j in range(i):
        if line[i][1] > line[j][1]:
            dp[i] = max(dp[i], dp[j] + 1)
print(n - max(dp))

DP ๋ฌธ์ œ์ด๋‹ค. 

์ „๊นƒ์ค„์„ A ๊ธฐ์ค€์œผ๋กœ ์ •๋ ฌ ํ›„ B์— ๋Œ€ํ•˜์—ฌ ๊ฐ€์žฅ ๊ธด ์ฆ๊ฐ€ํ•˜๋Š” ๋ถ€๋ถ„ ์ˆ˜์—ด์„ ๊ตฌํ•˜๋ฉด ๋œ๋‹ค. 

์—ฌ๊ธฐ์„œ ๊ฐ€์žฅ ๊ธด ์ฆ๊ฐ€ํ•˜๋Š” ๋ถ€๋ถ„ ์ˆ˜์—ด์„ ๊ตฌํ•ด์•ผ ํ•˜๋Š” ์ด์œ ๋Š” ์ฆ๊ฐ€ํ•˜๋Š” ์ˆ˜์—ด์ด๋ผ๋ฉด ์ „๊นƒ์ค„์ด ๊ต์ฐจ๋˜๋Š” ์ผ์ด ๋ฐœ์ƒํ•˜์ง€ ์•Š๋Š”๋‹ค.

๋”ฐ๋ผ์„œ ๋ถ€๋ถ„ ์ˆ˜์—ด์˜ ์ตœ๋Œ“๊ฐ’์€ ์ฆ‰, ์ œ๊ฑฐํ•˜์ง€ ์•Š์•„๋„ ๋˜๋Š” ์ „๊นƒ์ค„์ด ๋˜๋Š” ๊ฒƒ์ด๋‹ค. 

๊ทธ๋Ÿฌ๋ฏ€๋กœ n๊ฐœ์˜ ์ „๊นƒ์ค„์—์„œ ์ œ๊ฑฐํ•˜์ง€ ์•Š์•„๋„ ๋˜๋Š” ์ „๊นƒ์ค„์„ ๋นผ๋ฉด ์ œ๊ฑฐํ•ด์•ผ ํ•˜๋Š” ์ „๊นƒ์ค„์ด ๋‚˜์˜จ๋‹ค.

 

 

์ด๋Ÿฌํ•œ ํ’€์ด๋ฅผ ๋– ์˜ฌ๋ฆฌ๋Š”๋ฐ ๋„ˆ๋ฌด ๋ณต์žกํ•˜๊ฒŒ ์ƒ๊ฐํ•ด์„œ ์–ด๋ ค์›€์ด ์žˆ๋Š” ๊ฒƒ ๊ฐ™๋‹ค.