[Baekjoon/๐ŸฅˆSilverโ…ก] 11053: ๊ฐ€์žฅ ๊ธด ์ฆ๊ฐ€ํ•˜๋Š” ๋ถ€๋ถ„ ์ˆ˜์—ด

1 ๋ถ„ ์†Œ์š”

Intro

๋ฌธ์ œ์‚ฌ์ง„

  • ์ฃผ์–ด์ง„ ์ˆ˜์—ด์—์„œ ๊ฐ€์žฅ ๊ธด ์ฆ๊ฐ€ํ•˜๋Š” ๋ถ€๋ถ„ ์ˆ˜์—ด์„ ์ฐพ๋Š” ๋ฌธ์ œ์ด๋‹ค.

์ ‘๊ทผ ๋ฐฉ๋ฒ•๐Ÿ™‹โ€โ™€๏ธ

  • ๐Ÿ™‹โ€โ™€๏ธ ์ฃผ์˜ํ•  ์ 

    • ๋‹จ์ˆœํžˆ ์ด์ „ ์ˆ˜๋ณด๋‹ค ํฐ์ง€๋ฅผ ํŒ๋‹จํ•˜๋ฉฐ ๋ถ€๋ถ„ ์ˆ˜์—ด์˜ ๊ธธ์ด๋ฅผ ์นด์šฐํŠธํ•˜๋Š” ๋ฐฉ์‹

      • โ€˜40 50 10 30 40 60โ€™์—์„œ์˜ ๊ฐ€์žฅ ๊ธด ๋ถ€๋ถ„ ์ˆ˜์—ด์€ โ€˜10 30 40 60โ€™์ด๋‹ค.
      • ์œ„ ๋ฐฉ์‹์„ ์ ์šฉํ•œ๋‹ค๋ฉด โ€˜40 50 60โ€™์ด ๊ฐ€์žฅ ๊ธด ๋ถ€๋ถ„ ์ˆ˜์—ด์ด ๋˜๊ฒŒ ๋œ๋‹ค.


๊ทธ๋ ‡๋‹ค๋ฉด ์–ด๋–ป๊ฒŒ ์ ‘๊ทผํ•ด์•ผ ํ• ๊นŒ?


  • ํ•ด๋‹น ๋ฌธ์ œ๋ฅผ ํ’€๊ธฐ ์œ„ํ•ด์„œ ์šฐ๋ฆฌ๊ฐ€ ์ ์šฉํ•ด์•ผ ํ•˜๋Š” ๋ฐฉ์‹์€ dp์ด๋‹ค.

    • ํ•ด๋‹น ์œ„์น˜์˜ ์ˆ˜๊ฐ€ ๋งˆ์ง€๋ง‰ ์ˆ˜๊ฐ€ ๋˜๋Š” ๊ฐ€์žฅ ๊ธด ๋ถ€๋ถ„ ์ˆ˜์—ด์„ ๊ตฌํ•˜๋Š” ๋ฐฉ์‹

      (์—ฌ๊ธฐ๊ฐ€ ํ•ต์‹ฌ!๐Ÿ‘)

      • ์ž์‹ ๋ณด๋‹ค ์ž‘์€ ์•ž ์ˆ˜ ์ค‘์—์„œ ๊ฐ€์žฅ ๊ธด ๋ถ€๋ถ„ ์ˆ˜์—ด์„ ๊ฐ–๋Š” ์ˆ˜๋ฅผ ๊ตฌํ•œ๋‹ค.
      • ํ•ด๋‹น ์ˆ˜์—ด์— ์ž์‹ ์„ ์ถ”๊ฐ€ํ•จ์œผ๋กœ์จ ์ž๊ธฐ๊ฐ€ ๋์ˆ˜์ธ ๊ฐ€์žฅ ๊ธด ๋ถ€๋ถ„ ์ˆ˜์—ด์„ ๊ตฌํ•œ๋‹ค.


โ€˜10 20 10 30 20 50โ€™์— ์œ„์˜ ๊ณผ์ •์„ ์ ์šฉํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.


Algoritm๐Ÿ‘ฉโ€๐Ÿ’ป

  • ์œ„ ๋ฐฉ์‹์„ ์ ์šฉํ•ด ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ž‘์„ฑํ•ด๋ณด์ž.
#22.01.03
#๊ฐ€์žฅ ๊ธด ์ฆ๊ฐ€ํ•˜๋Š” ๋ถ€๋ถ„ ์ˆ˜์—ด
import sys
l = int(input())
nums = list(map(int, sys.stdin.readline().rstrip().split()))
# ๊ฐ ์ˆ˜๊ฐ€ ๋์ˆ˜๊ฐ€ ๋˜๋Š” ์ˆ˜์—ด์˜ ๊ธธ์ด๋ฅผ ๋ชจ๋‘ 1(์ˆ˜์—ด์— ์ž๊ธฐ ์ž์‹ ๋งŒ ์กด์žฌ)๋กœ ์ดˆ๊ธฐํ™”
dp = [1 for i in range(l)]

for i in range(1, l):
  # ์•ž์— ์กด์žฌํ•˜๋Š” ๊ฐ€์žฅ ๊ธด ๋ถ€๋ถ„ ์ˆ˜์—ด์˜ ๊ธธ์ด๋ฅผ ๋‚˜ํƒ€๋ƒ„
  m = 1

  for j in range(0, i):

    # ์ž์‹ ๋ณด๋‹ค ์ž‘์€ ์ˆ˜๋ฅผ ์ฐพ์Œ
    if nums[i] > nums[j]:

      if m < dp[j]+1:'
        # ์•ž์— ์กด์žฌํ•˜๋Š” ๊ฐ€์žฅ ๊ธด ๋ถ€๋ถ„ ์ˆ˜์—ด + ์ž์‹ 
        m = dp[j]+1

  dp[i] = m

# ๊ฐ ์ˆ˜๋“ค์„ ๋์ˆ˜๋กœ ํ•˜๋Š” ๋ถ€๋ถ„ ์ˆ˜์—ด ๊ฐ€์žฅ ๊ธด ๊ธธ์ด๋ฅผ ์ถœ๋ ฅ
print(max(dp))

์ œ์ถœ๊ฒฐ๊ณผ


๐Ÿ‘ฉ ์˜ค๋žœ๋งŒ์— ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ํ’€์—ˆ๋”๋‹ˆ ๊ฐ„๋‹จํ•œ ๋ฌธ์ œ๋„ ์–ด๋ ต๊ฒŒ ๋Š๊ปด์กŒ๋‹คใ…œใ…œ..

๊พธ์ค€ํžˆ ํ•˜๋Š” ๊ฒƒ์ด ์–ผ๋งˆ๋‚˜ ์ค‘์š”ํ•œ์ง€ ์˜ค๋Š˜ ๋‹ค์‹œ ํ•œ ๋ฒˆ ๊นจ๋‹ฌ์•˜๋‹ค. ์˜ค๋Š˜๋ถ€ํ„ฐ ๋‹ค์‹œ ์‹œ์ž‘์ด๋‹ค!

๊ทธ๋Ÿผ ์ด๋งŒ!

๋! ~(ห˜โ–พห˜~)

๋Œ“๊ธ€๋‚จ๊ธฐ๊ธฐ