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

728x90
๋ฐ˜์‘ํ˜•

๋ฌธ์ œ

 

1309๋ฒˆ: ๋™๋ฌผ์›

์ฒซ์งธ ์ค„์— ์šฐ๋ฆฌ์˜ ํฌ๊ธฐ N(1≤N≤100,000)์ด ์ฃผ์–ด์ง„๋‹ค.

www.acmicpc.net

 

๋ฌธ์ œ ํ’€์ด

Figure 1. ์ถ”๊ฐ€ ๋œ ๊ณต๊ฐ„์— ์‚ฌ์ž๊ฐ€ ์—†์„ ๋•Œ์˜ ๊ฒฝ์šฐ
Figure 2. ์ถ”๊ฐ€ ๋œ ๊ณต๊ฐ„์— ์‚ฌ์ž๊ฐ€ ์™ผ์ชฝ์— ์žˆ์„ ๋•Œ์˜ ๊ฒฝ์šฐ
Figure 3. ์ถ”๊ฐ€ ๋œ ๊ณต๊ฐ„์— ์‚ฌ์ž๊ฐ€ ์˜ค๋ฅธ์ชฝ์— ์žˆ์„ ๋•Œ์˜ ๊ฒฝ์šฐ

 ์ด ๋ฌธ์ œ๋Š” ์œ„์˜ ๊ทธ๋ฆผ์„ ์ดํ•ดํ•œ๋‹ค๋ฉด ์‰ฝ๊ฒŒ ์ ํ™”์‹์„ ์„ธ์šธ ์ˆ˜ ์žˆ๋‹ค. ์ฒ˜์Œ์— N์ด 1์ผ ๊ฒฝ์šฐ, ์‚ฌ์ž๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š์„ ๊ฒฝ์šฐ์™€ ์‚ฌ์ž๊ฐ€ ์™ผ์ชฝ์— ์กด์žฌํ•  ๊ฒฝ์šฐ, ์‚ฌ์ž๊ฐ€ ์˜ค๋ฅธ์ชฝ์— ์กด์žฌํ•  ๊ฒฝ์šฐ๊ฐ€ ๊ฐ 1๊ฐœ์”ฉ์ด๋ผ๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค.

 

 N์ด 2๊ฐ€ ๋˜๋ฉด ์ถ”๊ฐ€๋œ ๊ณต๊ฐ„์— ์‚ฌ์ž๊ฐ€ ์—†๊ฑฐ๋‚˜, ์‚ฌ์ž๊ฐ€ ์™ผ์ชฝ์— ์žˆ๊ฑฐ๋‚˜, ์‚ฌ์ž๊ฐ€ ์˜ค๋ฅธ์ชฝ์— ์žˆ์„ ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ์ฐพ์•„์•ผ ํ•œ๋‹ค. ์ƒˆ๋กœ์šด ๊ณต๊ฐ„์— ์‚ฌ์ž๊ฐ€ ์—†์„ ๊ฒฝ์šฐ ๊ฐ™์€ ๋ผ์ธ์— ์‚ฌ์ž๊ฐ€ ๊ฒน์น˜๊ฑฐ๋‚˜, ๋ชจ๋‘ ์—†์–ด๋„ ์ƒ๊ด€ ์—†์œผ๋ฏ€๋กœ ์‚ฌ์ž๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ, ์™ผ์ชฝ์— ์žˆ๋Š” ๊ฒฝ์šฐ, ์˜ค๋ฅธ์ชฝ์— ์žˆ๋Š” ๊ฒฝ์šฐ๋ฅผ ๋ชจ๋‘ ๋”ํ•œ๋‹ค.

 ์ด์™€ ๋‹ฌ๋ฆฌ ์‚ฌ์ž๊ฐ€ ์™ผ์ชฝ์ด๋‚˜ ์˜ค๋ฅธ์ชฝ์— ๊ฐ€๊ธฐ ์œ„ํ•ด์„œ๋Š” N - 1์— ์‚ฌ์ž๊ฐ€ ์—†๊ฑฐ๋‚˜, N - 1์˜ ์‚ฌ์ž๊ฐ€ ๋‹ค๋ฅธ ๋ผ์ธ์— ์—†์–ด์•ผ ํ•œ๋‹ค. ์ด์ฒ˜๋Ÿผ 1 ๋ถ€ํ„ฐ N์ด ์ฆ๊ฐ€ํ•จ์— ๋”ฐ๋ผ ์ƒˆ๋กœ์šด ๊ณต๊ฐ„์— ์‚ฌ์ž๊ฐ€ ์—†์„ ๋•Œ, ์™ผ์ชฝ์— ์žˆ์„ ๋•Œ, ์˜ค๋ฅธ์ชฝ์— ์žˆ์„ ๋•Œ๋ฅผ ๊ณ„์‚ฐํ•˜์—ฌ ๊ฐ’์„ ๋ˆ„์ ํ•ด ๊ฐ„๋‹ค๋ฉด N์ผ ๊ฒฝ์šฐ์˜ ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ๊ณ„์‚ฐ ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

์ฝ”๋“œ

from sys import stdin

if __name__ == '__main__':
    NO, LEFT, RIGHT = 0, 1, 2
    n = int(stdin.readline())
    answer = [1, 1, 1]

    for i in range(2, n + 1):
        n_lion = answer[NO] + answer[LEFT] + answer[RIGHT]
        l_lion = answer[NO] + answer[LEFT]
        r_lion = answer[NO] + answer[RIGHT]

        answer[NO], answer[LEFT], answer[RIGHT] \
            = n_lion, l_lion, r_lion

    print(sum(answer) % 9901)

 

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