๐Ÿ—๏ธ Algorithm/๐ŸŸฉ ๋ฐฑ์ค€

[๋ฐฑ์ค€] [Python] 1904๋ฒˆ_01ํƒ€์ผ_๋™์  ํ”„๋กœ๊ทธ๋ž˜๋ฐ

Dbswnstjd 2022. 9. 16. 19:09

๋ฌธ์ œ

https://www.acmicpc.net/problem/1904

 

1904๋ฒˆ: 01ํƒ€์ผ

์ง€์›์ด์—๊ฒŒ 2์ง„ ์ˆ˜์—ด์„ ๊ฐ€๋ฅด์ณ ์ฃผ๊ธฐ ์œ„ํ•ด, ์ง€์›์ด ์•„๋ฒ„์ง€๋Š” ๊ทธ์—๊ฒŒ ํƒ€์ผ๋“ค์„ ์„ ๋ฌผํ•ด์ฃผ์…จ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด ๊ฐ๊ฐ์˜ ํƒ€์ผ๋“ค์€ 0 ๋˜๋Š” 1์ด ์“ฐ์—ฌ ์žˆ๋Š” ๋‚ฑ์žฅ์˜ ํƒ€์ผ๋“ค์ด๋‹ค. ์–ด๋Š ๋‚  ์ง“๊ถ‚์€ ๋™์ฃผ๊ฐ€ ์ง€์›์ด

www.acmicpc.net

 

ํ’€์ด

# ๋ฐฑ์ค€ 1904๋ฒˆ ๋ฌธ์ œ - 01ํƒ€์ผ
n = int(input())
d = [0]*1000001
d[1] = 1
d[2] = 2
for i in range(3, n+1):
    d[i] = (d[i-1] + d[i-2])%15746

print(d[n])

์ด๋ฒˆ ๋ฌธ์ œ๋Š” ๋™์  ํ”„๋กœ ๊ทธ๋ž˜๋ฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉํ•˜์˜€๋‹ค.

๋จผ์ €

d[1] => 1 ํƒ€์ผ => 1

d[2] => 00, 11 ํƒ€์ผ => 2

d[3] => 100, 001, 111 => 3

d[4] => 1100, 0011, 1001, 0000, 1111 => 5

์ ํ™”์‹์„ ๊ตฌํ•ด๋ณด๋ฉด

d[n] = d[n-1] + d[n-2] (n>=3) ์ด๋ผ๋Š” ๊ฒฐ๊ณผ๊ฐ€ ๋„์ถœ๋œ๋‹ค. 

์ธ๋ฑ์Šค๋Š” ํ—ท๊ฐˆ๋ฆฌ์ง€ ์•Š๋„๋ก 1๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜์˜€๋‹ค.