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

728x90
๋ฐ˜์‘ํ˜•

1, 2, 3 ๋”ํ•˜๊ธฐ ์‹œ๋ฆฌ์ฆˆ

 

๋ฌธ์ œ

 

15988๋ฒˆ: 1, 2, 3 ๋”ํ•˜๊ธฐ 3

๊ฐ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋งˆ๋‹ค, n์„ 1, 2, 3์˜ ํ•ฉ์œผ๋กœ ๋‚˜ํƒ€๋‚ด๋Š” ๋ฐฉ๋ฒ•์˜ ์ˆ˜๋ฅผ 1,000,000,009๋กœ ๋‚˜๋ˆˆ ๋‚˜๋จธ์ง€๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.

www.acmicpc.net

 

๋ฌธ์ œ ํ’€์ด

๊ธฐ์กด์˜ ํ’€์ด ์ค‘ 1, 2, 3 ๋”ํ•˜๊ธฐ์™€ ๊ฐ™์€ ๋ฐฉ์‹์œผ๋กœ ๊ทœ์น™์„ ์ฐพ์œผ๋ฉด n์„ 1, 2, 3์„ ๋”ํ•ด๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ์ฐพ์„ ์ˆ˜ ์žˆ๋‹ค. ๊ธฐ์กด์˜ 1, 2, 3 ๋”ํ•˜๊ธฐ ๋ฌธ์ œ๋Š” n์˜ ๋ฒ”์œ„๋„ ์ž‘์„ ๋ฟ๋”๋Ÿฌ ๋‚˜๋ˆ„๊ธฐ ์—ฐ์‚ฐ์ด ์—†์—ˆ์ง€๋งŒ ์ด ๋ฌธ์ œ๋Š” ๋ฒ”์œ„๊ฐ€ 1000000์ด๋‹ค. ๋”ฐ๋ผ์„œ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค ๋งˆ๋‹ค n์— ๋”ฐ๋ฅธ ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ๊ณ„์‚ฐํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ, ๋ฏธ๋ฆฌ ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ๊ณ„์‚ฐํ•ด ๋‘์–ด์•ผ ์‹œ๊ฐ„ ์ดˆ๊ณผ๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š๋Š”๋‹ค.

 

์ฝ”๋“œ

from sys import stdin

if __name__ == '__main__':
    memo = [0] * 1000000
    memo[0], memo[1], memo[2] = 1, 2, 4

    for i in range(3, 1000000):
        memo[i] = (memo[i - 3] + memo[i - 2] + memo[i - 1]) % 1000000009

    for _ in range(int(stdin.readline())):
        n = int(stdin.readline())
        print(memo[n - 1])
728x90
๋ฐ˜์‘ํ˜•
๋Œ“๊ธ€
๊ธ€ ๋ณด๊ด€ํ•จ
์ตœ๊ทผ์— ์˜ฌ๋ผ์˜จ ๊ธ€
์ตœ๊ทผ์— ๋‹ฌ๋ฆฐ ๋Œ“๊ธ€