๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
์ฝ”๋”ฉํ…Œ์ŠคํŠธ(Baekjoon)

[python] Baekjoon 1003 : ํ”ผ๋ณด๋‚˜์น˜ ํ•จ์ˆ˜

by Seop๐Ÿ˜€ 2024. 1. 20.
๋ฐ˜์‘ํ˜•

๋ฌธ์ œ - Baekjoon 1003 : ํ”ผ๋ณด๋‚˜์น˜ ํ•จ์ˆ˜

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

 

1003๋ฒˆ: ํ”ผ๋ณด๋‚˜์น˜ ํ•จ์ˆ˜

๊ฐ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋งˆ๋‹ค 0์ด ์ถœ๋ ฅ๋˜๋Š” ํšŸ์ˆ˜์™€ 1์ด ์ถœ๋ ฅ๋˜๋Š” ํšŸ์ˆ˜๋ฅผ ๊ณต๋ฐฑ์œผ๋กœ ๊ตฌ๋ถ„ํ•ด์„œ ์ถœ๋ ฅํ•œ๋‹ค.

www.acmicpc.net

ํ•ต์‹ฌ

- ๋ฌธ์ œ: N๋ฒˆ์งธ ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜๋ฅผ ๊ตฌํ•  ๋•Œ, 0๊ณผ 1์ด ๊ฐ๊ฐ ๋ช‡ ๋ฒˆ ์ถœ๋ ฅ๋˜๋Š”์ง€ ๊ณ„์‚ฐํ•˜๊ธฐ

๋‚ด์šฉ

- ์ด ๋ฌธ์ œ๋Š” ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜์—ด์˜ ํŠน์ • ํ•ญ์„ ๊ตฌํ•˜๋Š” ๊ณผ์ •์—์„œ 0๊ณผ 1์ด ์ถœ๋ ฅ๋˜๋Š” ํšŸ์ˆ˜๋ฅผ ๊ณ„์‚ฐํ•˜๋Š” ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜์—ด์€ ์žฌ๊ท€์  ๋ฐฉ๋ฒ•์œผ๋กœ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ์ด ๊ฒฝ์šฐ ์ค‘๋ณต ๊ณ„์‚ฐ์ด ๋งŽ์•„ ํšจ์œจ์ ์ด์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋‹ค์ด๋‚˜๋ฏน ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ธฐ๋ฒ•์„ ์‚ฌ์šฉํ•˜์—ฌ ํšจ์œจ์ ์œผ๋กœ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

python display

์ ‘๊ทผ ๋ฐฉ๋ฒ•

  1. ๋‹ค์ด๋‚˜๋ฏน ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์‚ฌ์šฉ: ๊ฐ ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜์— ๋Œ€ํ•ด 0๊ณผ 1์ด ์ถœ๋ ฅ๋˜๋Š” ํšŸ์ˆ˜๋ฅผ ์ €์žฅํ•˜๋Š” ๋ฐฐ์—ด์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค.
  2. ์ดˆ๊ธฐ ๊ฐ’ ์„ค์ •: ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜์—ด์˜ ์ฒซ ๋ฒˆ์งธ ํ•ญ(0)๊ณผ ๋‘ ๋ฒˆ์งธ ํ•ญ(1)์— ๋Œ€ํ•ด 0๊ณผ 1์ด ์ถœ๋ ฅ๋˜๋Š” ํšŸ์ˆ˜๋ฅผ ์ดˆ๊ธฐํ™”ํ•ฉ๋‹ˆ๋‹ค.
  3. ์ ํ™”์‹ ์ ์šฉ: ๊ฐ ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜์— ๋Œ€ํ•œ 0๊ณผ 1์˜ ์ถœ๋ ฅ ํšŸ์ˆ˜๋Š” ์ด์ „ ๋‘ ํ•ญ์˜ 0๊ณผ 1์˜ ์ถœ๋ ฅ ํšŸ์ˆ˜์˜ ํ•ฉ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
  4. ๊ฒฐ๊ณผ ์ถœ๋ ฅ: ์ฃผ์–ด์ง„ 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์˜ ์ถœ๋ ฅ ํšŸ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.

์ฐธ๊ณ ํ•  ๋งŒํ•œ ์ž๋ฃŒ

  1. ๋‹ค์ด๋‚˜๋ฏน ํ”„๋กœ๊ทธ๋ž˜๋ฐ: ๋ฐ˜๋ณต๋˜๋Š” ๊ณ„์‚ฐ์„ ์ตœ์†Œํ™”ํ•˜๊ธฐ ์œ„ํ•œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ธฐ๋ฒ•์ž…๋‹ˆ๋‹ค.
  2. ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜์—ด: ๊ฐ ํ•ญ์ด ์ด์ „ ๋‘ ํ•ญ์˜ ํ•ฉ์œผ๋กœ ์ด๋ฃจ์–ด์ง€๋Š” ์ˆ˜์—ด์ž…๋‹ˆ๋‹ค.
  3. 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

๋Œ“๊ธ€