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

728x90
๋ฐ˜์‘ํ˜•

๋ฌธ์ œ

 

11058๋ฒˆ: ํฌ๋ฆฌ๋ณด๋“œ

N = 3์ธ ๊ฒฝ์šฐ์— A, A, A๋ฅผ ๋ˆŒ๋Ÿฌ A 3๊ฐœ๋ฅผ ์ถœ๋ ฅํ•  ์ˆ˜ ์žˆ๋‹ค. N = 7์ธ ๊ฒฝ์šฐ์—๋Š” A, A, A, Ctrl-A, Ctrl-C, Ctrl-V, Ctrl-V๋ฅผ ๋ˆŒ๋Ÿฌ 9๊ฐœ๋ฅผ ์ถœ๋ ฅํ•  ์ˆ˜ ์žˆ๋‹ค. N = 11์ธ ๊ฒฝ์šฐ์—๋Š” A, A, A, Ctrl-A, Ctrl-C, Ctrl-V, Ctrl-V, Ctrl-A, Ctrl-C, Ctrl

www.acmicpc.net

 

๋ฌธ์ œ ํ’€์ด

 ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅผ ์ˆ˜ ์žˆ๋Š” ํšŸ์ˆ˜ N์ด ์ฃผ์–ด์งˆ ๋•Œ, A ๋ฒ„ํŠผ, Ctrl-A, Ctrl-C, Ctrl-V๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ€์žฅ ๋งŽ์ด A๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ํšŸ์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค. ์ฃผ์–ด์ง„ ํšŸ์ˆ˜ 3, 7, 11์˜ ๊ทœ์น™์„ ์ด๋Œ์–ด๋‚ผ ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ์ฐพ์œผ๋ฉด ๋ฌธ์ œ๋ฅผ ์‰ฝ๊ฒŒ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 ์šฐ์„  1์—์„œ 6๊นŒ์ง€๋Š” A๋ฅผ ๋ณต์‚ฌํ•˜๋Š” ๊ฒฝ์šฐ๋ณด๋‹ค A๋ฅผ ์ž…๋ ฅํ•˜๋Š” ๊ฒƒ์ด ๋” ๋งŽ์€ A๋ฅผ ์ถœ๋ ฅํ•  ์ˆ˜ ์žˆ๋‹ค. ๋”ฐ๋ผ์„œ 1์—์„œ 6๊นŒ์ง€๋Š” A๊ฐ€ ์ถœ๋ ฅ๋˜๋Š” ํšŸ์ˆ˜๊ฐ€ 1, 2, 3, 4, 5, 6์ด๋‹ค. ํ•˜์ง€๋งŒ 7๋ถ€ํ„ฐ๋Š” ๋ณต์‚ฌ๋ฅผ ํ•˜๋Š” ๊ฒƒ์ด ๋” ๋งŽ์€ A๋ฅผ ์ถœ๋ ฅํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค.

 

 ๋ณต์‚ฌ๋ฅผ ํ†ตํ•ด A๊ฐ€ ์ถœ๋ ฅ๋˜๋Š” ํšŸ์ˆ˜๋ฅผ ๋Š˜๋ฆด ์ˆ˜ ์žˆ๋Š” ์ตœ์ดˆ์˜ ๊ฒฝ์šฐ์ธ 7์„ ์ƒ๊ฐํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ์˜ ์ˆ˜๊ฐ€ ์žˆ๋‹ค.

  • A๋ฅผ 3๊ฐœ ์ถœ๋ ฅํ•˜๊ณ  ๋ณต์‚ฌํ•˜๋Š” ๊ฒฝ์šฐ
  • A๋ฅผ 2๊ฐœ ์ถœ๋ ฅํ•˜๊ณ  ๋ณต์‚ฌํ•˜๋Š” ๊ฒฝ์šฐ
  • A๋ฅผ 1๊ฐœ ์ถœ๋ ฅํ•˜๊ณ  ๋ณต์‚ฌํ•˜๋Š” ๊ฒฝ์šฐ

 ๋”ฐ๋ผ์„œ ์ ํ™”์‹์„ `dp[i] = max(dp[i - 3] * 2, dp[i - 4] * 3, dp[i - 5] * 4)`๋กœ ์„ธ์šธ ์ˆ˜ ์žˆ๋‹ค. ๊ทธ ํ›„๋กœ๋Š” ์•ž์˜ ๊ฐ’์„ ์œ ์ง€ํ•˜๊ณ  ์žˆ์œผ๋ฏ€๋กœ ํ•ด๋‹น ์ ํ™”์‹์„ ๋ฐ˜๋ณตํ•˜์—ฌ N์ด๋ผ๋Š” ํšŸ์ˆ˜๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, ์ตœ๋Œ€๋กœ ์ถœ๋ ฅ๋˜๋Š” A๋ฅผ ์ฐพ์„ ์ˆ˜ ์žˆ๋‹ค.

 

์ฝ”๋“œ

from sys import stdin


if __name__ == '__main__':
    n = int(stdin.readline())
    dp = [num for num in range(n + 1)]

    for i in range(7, n + 1):
        dp[i] = max(dp[i - 3] * 2, dp[i - 4] * 3, dp[i - 5] * 4)

    print(dp[n])
728x90
๋ฐ˜์‘ํ˜•
๋Œ“๊ธ€
๊ธ€ ๋ณด๊ด€ํ•จ
์ตœ๊ทผ์— ์˜ฌ๋ผ์˜จ ๊ธ€
์ตœ๊ทผ์— ๋‹ฌ๋ฆฐ ๋Œ“๊ธ€