๋ฌธ์ - Baekjoon 1003 : ํผ๋ณด๋์น ํจ์
https://www.acmicpc.net/problem/1003
1003๋ฒ: ํผ๋ณด๋์น ํจ์
๊ฐ ํ ์คํธ ์ผ์ด์ค๋ง๋ค 0์ด ์ถ๋ ฅ๋๋ ํ์์ 1์ด ์ถ๋ ฅ๋๋ ํ์๋ฅผ ๊ณต๋ฐฑ์ผ๋ก ๊ตฌ๋ถํด์ ์ถ๋ ฅํ๋ค.
www.acmicpc.net
ํต์ฌ
- ๋ฌธ์ : N๋ฒ์งธ ํผ๋ณด๋์น ์๋ฅผ ๊ตฌํ ๋, 0๊ณผ 1์ด ๊ฐ๊ฐ ๋ช ๋ฒ ์ถ๋ ฅ๋๋์ง ๊ณ์ฐํ๊ธฐ
๋ด์ฉ
- ์ด ๋ฌธ์ ๋ ํผ๋ณด๋์น ์์ด์ ํน์ ํญ์ ๊ตฌํ๋ ๊ณผ์ ์์ 0๊ณผ 1์ด ์ถ๋ ฅ๋๋ ํ์๋ฅผ ๊ณ์ฐํ๋ ๋ฌธ์ ์ ๋๋ค. ํผ๋ณด๋์น ์์ด์ ์ฌ๊ท์ ๋ฐฉ๋ฒ์ผ๋ก ๊ตฌํํ ์ ์์ง๋ง, ์ด ๊ฒฝ์ฐ ์ค๋ณต ๊ณ์ฐ์ด ๋ง์ ํจ์จ์ ์ด์ง ์์ต๋๋ค. ๋ฐ๋ผ์ ๋ค์ด๋๋ฏน ํ๋ก๊ทธ๋๋ฐ ๊ธฐ๋ฒ์ ์ฌ์ฉํ์ฌ ํจ์จ์ ์ผ๋ก ํด๊ฒฐํ ์ ์์ต๋๋ค.
์ ๊ทผ ๋ฐฉ๋ฒ
- ๋ค์ด๋๋ฏน ํ๋ก๊ทธ๋๋ฐ ์ฌ์ฉ: ๊ฐ ํผ๋ณด๋์น ์์ ๋ํด 0๊ณผ 1์ด ์ถ๋ ฅ๋๋ ํ์๋ฅผ ์ ์ฅํ๋ ๋ฐฐ์ด์ ๋ง๋ญ๋๋ค.
- ์ด๊ธฐ ๊ฐ ์ค์ : ํผ๋ณด๋์น ์์ด์ ์ฒซ ๋ฒ์งธ ํญ(0)๊ณผ ๋ ๋ฒ์งธ ํญ(1)์ ๋ํด 0๊ณผ 1์ด ์ถ๋ ฅ๋๋ ํ์๋ฅผ ์ด๊ธฐํํฉ๋๋ค.
- ์ ํ์ ์ ์ฉ: ๊ฐ ํผ๋ณด๋์น ์์ ๋ํ 0๊ณผ 1์ ์ถ๋ ฅ ํ์๋ ์ด์ ๋ ํญ์ 0๊ณผ 1์ ์ถ๋ ฅ ํ์์ ํฉ๊ณผ ๊ฐ์ต๋๋ค.
- ๊ฒฐ๊ณผ ์ถ๋ ฅ: ์ฃผ์ด์ง N์ ๋ํด ๊ณ์ฐ๋ 0๊ณผ 1์ ์ถ๋ ฅ ํ์๋ฅผ ์ถ๋ ฅํฉ๋๋ค.
์ฝ๋
# ์
๋ ฅ ์ฒ๋ฆฌ
T = int(input())
for _ in range(T):
N = int(input())
# 0๊ณผ 1 ์ถ๋ ฅ ํ์ ๋ฐฐ์ด ์ด๊ธฐํ
zero_count = [1, 0] + [0] * (N - 1)
one_count = [0, 1] + [0] * (N - 1)
# ํผ๋ณด๋์น ์์ด ๊ณ์ฐ
for i in range(2, N + 1):
zero_count[i] = zero_count[i - 1] + zero_count[i - 2]
one_count[i] = one_count[i - 1] + one_count[i - 2]
print(zero_count[N], one_count[N])
ํ์ด
- 0๊ณผ 1์ด ์ถ๋ ฅ๋๋ ํ์๋ฅผ ๊ฐ๊ฐ ์ ์ฅํ๋ ๋ฐฐ์ด์ ์ด๊ธฐํํฉ๋๋ค.
- ํผ๋ณด๋์น ์์ด์ ๊ฐ ํญ์ ๋ํ 0๊ณผ 1์ ์ถ๋ ฅ ํ์๋ฅผ ๊ณ์ฐํฉ๋๋ค.
- ๋ฐฐ์ด์ ์ ์ฅ๋ ๊ฐ์ ์ฌ์ฉํ์ฌ ๊ฐ N์ ๋ํ 0๊ณผ 1์ ์ถ๋ ฅ ํ์๋ฅผ ์ถ๋ ฅํฉ๋๋ค.
์ฐธ๊ณ ํ ๋งํ ์๋ฃ
- ๋ค์ด๋๋ฏน ํ๋ก๊ทธ๋๋ฐ: ๋ฐ๋ณต๋๋ ๊ณ์ฐ์ ์ต์ํํ๊ธฐ ์ํ ํ๋ก๊ทธ๋๋ฐ ๊ธฐ๋ฒ์ ๋๋ค.
- ํผ๋ณด๋์น ์์ด: ๊ฐ ํญ์ด ์ด์ ๋ ํญ์ ํฉ์ผ๋ก ์ด๋ฃจ์ด์ง๋ ์์ด์ ๋๋ค.
- Python ๋ฐฐ์ด ์ฌ์ฉ๋ฒ: Python์์ ๋ฐฐ์ด์ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ๊ณผ ์์ ์ ๋๋ค.
์ถ์ฒ ๋งํฌ:
- ๋ค์ด๋๋ฏน ํ๋ก๊ทธ๋๋ฐ ์ค๋ช
: [GeeksforGeeks - Dynamic Programming](https://www.geeksforgeeks.org/dynamic-programming/))
- ํผ๋ณด๋์น ์์ด์ ๊ฐ๋
: [Khan Academy - Fibonacci sequence](https://www.khanacademy.org/math/algebra-home/alg-series-and-induction/alg-fibonacci-sequence))
- Python ๋ฐฐ์ด ์ฌ์ฉ๋ฒ: [W3Schools Python Arrays](https://www.w3schools.com/python/python_arrays.asp))
'์ฝ๋ฉํ ์คํธ(Baekjoon)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[python] Baekjoon 1005 : ACM Craft (0) | 2024.01.21 |
---|---|
[python] Baekjoon 1004 : ์ด๋ฆฐ ์์ (0) | 2024.01.20 |
[python] Baekjoon 1002 : ํฐ๋ (0) | 2024.01.20 |
[python] Baekjoon 1001 : A-B (0) | 2024.01.20 |
[python] Baekjoon 1000 : A+B (0) | 2024.01.20 |
๋๊ธ