Problem Solving/[ํ•ญํ•ด99] TIL

99ํด๋Ÿฝ ์ฝ”ํ…Œ ์Šคํ„ฐ๋”” 30์ผ์ฐจ TIL / DP(๋‹ค์ด๋‚˜๋ฏน ํ”„๋กœ๊ทธ๋ž˜๋ฐ)

geum 2024. 11. 26. 23:35

โœ๏ธ ๋ฌธ์ œ

[๋ฐฑ์ค€/BOJ] 1965๋ฒˆ: ์ƒ์ž๋„ฃ๊ธฐ(https://www.acmicpc.net/problem/1965)

 

์ •์œก๋ฉด์ฒด ๋ชจ์–‘์˜ ์ƒ์ž๊ฐ€ ์ผ๋ ฌ๋กœ ๋Š˜์–ด์„œ ์žˆ๋‹ค. ์ƒ์ž๋งˆ๋‹ค ํฌ๊ธฐ๊ฐ€ ์ฃผ์–ด์ ธ ์žˆ๋Š”๋ฐ, ์•ž์— ์žˆ๋Š” ์ƒ์ž์˜ ํฌ๊ธฐ๊ฐ€ ๋’ค์— ์žˆ๋Š” ์ƒ์ž์˜ ํฌ๊ธฐ๋ณด๋‹ค ์ž‘์œผ๋ฉด, ์•ž์— ์žˆ๋Š” ์ƒ์ž๋ฅผ ๋’ค์— ์žˆ๋Š” ์ƒ์ž ์•ˆ์— ๋„ฃ์„ ์ˆ˜๊ฐ€ ์žˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์•ž์—์„œ๋ถ€ํ„ฐ ์ˆœ์„œ๋Œ€๋กœ ํฌ๊ธฐ๊ฐ€ (1, 5, 2, 3, 7)์ธ 5๊ฐœ์˜ ์ƒ์ž๊ฐ€ ์žˆ๋‹ค๋ฉด, ํฌ๊ธฐ 1์ธ ์ƒ์ž๋ฅผ ํฌ๊ธฐ 5์ธ ์ƒ์ž์— ๋„ฃ๊ณ , ๋‹ค์‹œ ์ด ์ƒ์ž๋ฅผ ํฌ๊ธฐ 7์ธ ์ƒ์ž ์•ˆ์— ๋„ฃ์„ ์ˆ˜ ์žˆ๋‹ค. ํ•˜์ง€๋งŒ ์ด๋ ‡๊ฒŒ ์ƒ์ž๋ฅผ ๋„ฃ์„ ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์€ ์—ฌ๋Ÿฌ ๊ฐ€์ง€๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ๋‹ค. ์•ž์˜ ์˜ˆ์—์„œ ์ฐจ๋ก€๋Œ€๋กœ ํฌ๊ธฐ๊ฐ€ 1, 2, 3, 7์ธ ์ƒ์ž๋ฅผ ์„ ํƒํ•˜๋ฉด ์ด 4๊ฐœ์˜ ์ƒ์ž๊ฐ€ ํ•œ ๊ฐœ์˜ ์ƒ์ž์— ๋“ค์–ด๊ฐ€๊ฒŒ ๋œ๋‹ค.

์ƒ์ž์˜ ํฌ๊ธฐ๊ฐ€ ์ฃผ์–ด์งˆ ๋•Œ, ํ•œ ๋ฒˆ์— ๋„ฃ์„ ์ˆ˜ ์žˆ๋Š” ์ตœ๋Œ€์˜ ์ƒ์ž ๊ฐœ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.

 

๐Ÿค– ์ž…์ถœ๋ ฅ ์˜ˆ์‹œ

 

๐Ÿง ๋‚œ์ด๋„/์†Œ์š” ์‹œ๊ฐ„

โœ… ๋‚œ์ด๋„: solved.ac ๊ธฐ์ค€ S2

โœ… ์†Œ์š” ์‹œ๊ฐ„: ์ธก์ • X

โœ… ๊ถŒ์žฅ ์‹œ๊ฐ„: 1์‹œ๊ฐ„ 15๋ถ„

 

๐Ÿ’ก ํ’€์ด

1) ๋ฌธ์ œ ์ดํ•ด

์ƒ์ž ์–˜๊ธฐ๊ฐ€ ์ ํ˜€ ์žˆ์ง€๋งŒ LIS ๊ธธ์ด๋ฅผ ์ฐพ๋Š” ๋ฌธ์ œ๋‹ค.

 

์Šคํ„ฐ๋””์—์„œ๋„ '๊ฐ€์žฅ ๊ธด ๊ฐ์†Œํ•˜๋Š” ๋ถ€๋ถ„ ์ˆ˜์—ด' ๋ฌธ์ œ๋ฅผ ํ’€์—ˆ์—ˆ๊ณ  ๊ฐœ์ธ์ ์œผ๋กœ๋„ ๋ฐฑ์ค€์—์„œ '๊ฐ€์žฅ ๊ธด ์ฆ๊ฐ€ํ•˜๋Š” ๋ถ€๋ถ„ ์ˆ˜์—ด' ๋ฌธ์ œ๋ฅผ ํ’€์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ฝ”๋“œ ํ‹€์„ ์žก๋Š” ๋ฐ์— ์‹œ๊ฐ„์ด ์˜ค๋ž˜ ๊ฑธ๋ฆฌ์ง€๋Š” ์•Š์•˜๋‹ค. ์ด์ „์— ํ‘ผ ๋ฌธ์ œ๋“ค๊ณผ ์ฝ”๋“œ๊ฐ€ ํฌ๊ฒŒ ๋‹ค๋ฅด์ง€๋Š” ์•Š์•„์„œ ์˜ค๋Š˜ ๋ฌธ์ œ๋Š” ๋กœ์ง์— ๋Œ€ํ•ด์„œ ์ž์„ธํžˆ ์ž‘์„ฑํ•˜์ง€๋Š” ์•Š๊ฒ ๋‹ค.

 

2) ์ „์ฒด ์ฝ”๋“œ

N = int(input())

boxes = list(map(int, input().split()))

DP = [1]*N

for i in range(1, N):
    for j in range(i):
        if boxes[i] > boxes[j]:
            DP[i] = max(DP[i], DP[j]+1)
            
print(max(DP))

 

3) ์–ด๋ ค์› ๋˜ ์ /๋ฐฐ์šด ์ 

๐Ÿšจ ์–ด๋ ค์› ๋˜ ์ 

  • ์—†์Œ

โ— ๋ฐฐ์šด ์ 

  • LIS ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ฝ”๋“œ๋Š” ํ™•์‹คํ•˜๊ฒŒ ์™ธ์›Œ๋‘๋ฉด ์ข‹์„ ๊ฒƒ ๊ฐ™๋‹ค.