ํ‹ฐ์Šคํ† ๋ฆฌ ๋ทฐ

728x90
๋ฐ˜์‘ํ˜•

๋ฌธ์ œ

 

11053๋ฒˆ: ๊ฐ€์žฅ ๊ธด ์ฆ๊ฐ€ํ•˜๋Š” ๋ถ€๋ถ„ ์ˆ˜์—ด

์ˆ˜์—ด A๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, ๊ฐ€์žฅ ๊ธด ์ฆ๊ฐ€ํ•˜๋Š” ๋ถ€๋ถ„ ์ˆ˜์—ด์„ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์ˆ˜์—ด A = {10, 20, 10, 30, 20, 50} ์ธ ๊ฒฝ์šฐ์— ๊ฐ€์žฅ ๊ธด ์ฆ๊ฐ€ํ•˜๋Š” ๋ถ€๋ถ„ ์ˆ˜์—ด์€ A = {10, 20, 10, 30, 20, 50} ์ด

www.acmicpc.net

 

๋ฌธ์ œ ํ’€์ด

 ์˜ˆ์‹œ์˜ ์ˆ˜์—ด 10 20 10 30 20 50์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ฐ€์žฅ ๊ธด ์ฆ๊ฐ€ํ•˜๋Š” ๋ถ€๋ถ„ ์ˆ˜์—ด์„ ์ฐพ์„ ์ˆ˜ ์žˆ๋‹ค. ์•ž์˜ ์ˆ˜์—ด์—์„œ ์ž‘์€ ์ˆ˜๊ฐ€  ์žˆ๋Š”์ง€ ์นด์šดํŠธํ•˜์—ฌ, ๊ฐ ๊ฐ’์— ๋”ฐ๋ผ ์ฆ๊ฐ€ํ•˜๋Š” ๋ถ€๋ถ„์ˆ˜์—ด์˜ ๊ธธ์ด๋ฅผ ์ฐพ์„ ์ˆ˜ ์žˆ๋‹ค.

 

20 ๋ณด๋‹ค ์ž‘์€ ์ˆ˜๊ฐ€ ์žˆ๋Š”๊ฐ€?

์ˆ˜์—ด 10 20 10 30 20 50
์นด์šดํŠธ 1 2 1 1 1 1
  • 10์€ 20 ๋ณด๋‹ค ์ž‘์œผ๋ฏ€๋กœ 10์˜ ์นด์šดํŠธ ๊ฐ’์—์„œ + 1ํ•œ ๊ฐ’์„ 20์˜ ์นด์šดํŠธ๋กœ ๋ณ€๊ฒฝ

10 ๋ณด๋‹ค ์ž‘์€ ์ˆ˜๊ฐ€ ์žˆ๋Š”๊ฐ€?

์ˆ˜์—ด 10 20 10 30 20 50
์นด์šดํŠธ 1 2 1 1 1 1
  • 10๋ณด๋‹ค ์ž‘์€ ์ˆ˜๊ฐ€ ์—†์œผ๋ฏ€๋กœ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š์Œ

30 ๋ณด๋‹ค ์ž‘์€ ์ˆ˜๊ฐ€ ์žˆ๋Š”๊ฐ€?

์ˆ˜์—ด 10 20 10 30 20 50
์นด์šดํŠธ 1 2 1 3 1 1
  • ์ž‘์€ ์ˆ˜ ์ค‘, ์นด์šดํŠธ๊ฐ€ ๊ฐ€์žฅ ํฐ ๊ฐ’์— + 1ํ•œ ๊ฐ’์„ 30์˜ ์นด์šดํŠธ๋กœ ๋ณ€๊ฒฝ

20 ๋ณด๋‹ค ์ž‘์€ ์ˆ˜๊ฐ€ ์žˆ๋Š”๊ฐ€?

์ˆ˜์—ด 10 20 10 30 20 50
์นด์šดํŠธ 1 2 1 3 2 1
  • ์ฒซ๋ฒˆ์งธ์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ 10 ๋ฐ–์— ์—†์œผ๋ฏ€๋กœ 2๋กœ ์นด์šดํŠธ๋ฅผ ๋ณ€๊ฒฝํ•จ

50 ๋ณด๋‹ค ์ž‘์€ ์ˆ˜๊ฐ€ ์žˆ๋Š”๊ฐ€?

์ˆ˜์—ด 10 20 10 30 20 50
์นด์šดํŠธ 1 2 1 3 2 4
  • ์ž‘์€ ์ˆ˜ ์ค‘ 30์˜ ์นด์šดํŠธ๊ฐ€ ๊ฐ€์žฅ ํฌ๋ฏ€๋กœ ํ•ด๋‹น ์นด์šดํŠธ ๊ฐ’ + 1์„ 50์˜ ์นด์šดํŠธ๋กœ ๋ณ€๊ฒฝํ•จ

 ์—ฌ๊ธฐ์„œ ๊ณ„์‚ฐ๋œ ์นด์šดํŠธ๋Š” ์ฆ๊ฐ€ํ•˜๋Š” ๋ถ€๋ถ„ ์ˆ˜์—ด์˜ ๊ธธ์ด๊ฐ€ ๋œ๋‹ค. ๋˜ํ•œ ์ˆ˜์—ด์˜ ์ฒซ๋ฒˆ์งธ ๊ฐ’์€ ์ž๊ธฐ์ž์‹ ์„ ์ œ์™ธํ•˜๊ณ  ๋น„๊ต ๋Œ€์ƒ์ด ์—†๊ณ , ๋ชจ๋“  ์ˆ˜์—ด์€ ์ž๊ธฐ ์ž์‹ ์„ ๊ฒฝ์šฐ์— ์ˆ˜์— ํฌํ•จํ•˜๋ฏ€๋กœ ์ดˆ๊ธฐ์— 1๋กœ ์ดˆ๊ธฐํ™” ํ•ด์ฃผ๋ฉด ๋œ๋‹ค.

 

์ฝ”๋“œ

from sys import stdin

if __name__ == '__main__':
    n = int(stdin.readline())
    nums = list(map(int, stdin.readline().split()))
    # ์ž๊ธฐ์ž์‹ ์€ ํฌํ•จํ•˜๋ฏ€๋กœ 1๋กœ ์ดˆ๊ธฐํ™”
    answer = [1] * n
    for i in range(1, n):
        for j in range(i):
            if nums[j] < nums[i]:
                answer[i] = max(answer[i], answer[j] + 1)
    print(max(answer))

 

728x90
๋ฐ˜์‘ํ˜•
๋Œ“๊ธ€
๊ธ€ ๋ณด๊ด€ํ•จ
์ตœ๊ทผ์— ์˜ฌ๋ผ์˜จ ๊ธ€
์ตœ๊ทผ์— ๋‹ฌ๋ฆฐ ๋Œ“๊ธ€