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

728x90
๋ฐ˜์‘ํ˜•

๋ฌธ์ œ

 

10844๋ฒˆ: ์‰ฌ์šด ๊ณ„๋‹จ ์ˆ˜

์ฒซ์งธ ์ค„์— ์ •๋‹ต์„ 1,000,000,000์œผ๋กœ ๋‚˜๋ˆˆ ๋‚˜๋จธ์ง€๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.

www.acmicpc.net

 

๋ฌธ์ œ ํ’€์ด

 ์ˆ˜์˜ ๊ธธ์ด๊ฐ€ 1์ธ ๊ฒฝ์šฐ์—๋Š” 1 - 9 ๊นŒ์ง€์˜ ๊ณ„๋‹จ์ˆ˜๊ฐ€ ์žˆ์œผ๋ฏ€๋กœ ๊ฒฝ์šฐ์˜ ์ˆ˜๋Š” 9๊ฐœ์ด๋‹ค. ์ˆ˜์˜ ๊ธธ์ด๊ฐ€ 2์ธ ๊ฒฝ์šฐ์—๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ์˜ ์ˆ˜๋“ค์ด ์žˆ๋‹ค.

์‹œ์ž‘ ์ˆ˜ 1 2 3 4 5 6 7 8 9
  10 21 32 43 54 65 76 87 98
    23 34 45 56 67 78 89  

 ํ‘œ๋ฅผ ๋ณด๋ฉด ์‹œ์ž‘ํ•˜๋Š” ์ˆ˜๊ฐ€ 1๊ณผ 9๋ฅผ ์ œ์™ธํ•˜๊ณ ๋Š” ์‹œ์ž‘ ์ˆ˜๊ฐ€ ๊ฐ€์งˆ ์ˆ˜๋Š” ๊ฒฝ์šฐ์˜ ์ˆ˜๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ฝ”๋“œ๋กœ ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ๋‹ค.

cur = [
  cur[1],
  cur[0] + cur[2],
  cur[1] + cur[3],
  cur[2] + cur[4],
  cur[3] + cur[5],
  cur[4] + cur[6],
  cur[5] + cur[7],
  cur[6] + cur[8],
  cur[7] + cur[9],
  cur[8]
]

 ์ฆ‰ ์‹œ์ž‘ ์ˆ˜(์ธ๋ฑ์Šค) ์ฒ˜์Œ๊ณผ ๋์„ ์ œ์™ธํ•˜๊ณ ๋Š” ์ด์ „์˜ ์ˆ˜์™€ ๋‹ค์Œ์˜ ์ˆ˜์— ์˜ํ–ฅ์„ ๋ฐ›๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ด์ „์˜ ๊ฐ’์„ ๊ธฐ์ค€์œผ๋กœ ๋‹ค์Œ๊ฐ’์„ ๊ณ„์‚ฐํ•˜๊ธฐ ์œ„ํ•œ ๊ณผ์ •์„ ์œ„์˜ ๋ฆฌ์ŠคํŠธ์™€ ๊ฐ™์ด ์ฒ˜๋ฆฌํ•˜๋ฉด ์ •๋‹ต์„ ๋„์ถœํ•  ์ˆ˜ ์žˆ๋‹ค.

 

์ฝ”๋“œ

from sys import stdin

if __name__ == '__main__':
    n = int(stdin.readline())
    cur = [0, 1, 1, 1, 1, 1, 1, 1, 1, 1]

    for _ in range(n - 1):
        tmp = cur.copy()
        cur[0] = tmp[1]
        for i in range(1, 9):
            cur[i] = tmp[i - 1] + tmp[i + 1]
        cur[9] = tmp[8]
    print(sum(cur))
728x90
๋ฐ˜์‘ํ˜•
๋Œ“๊ธ€
๊ธ€ ๋ณด๊ด€ํ•จ
์ตœ๊ทผ์— ์˜ฌ๋ผ์˜จ ๊ธ€
์ตœ๊ทผ์— ๋‹ฌ๋ฆฐ ๋Œ“๊ธ€