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

๐Ÿ–ฅ ๋ฌธ์ œ

๋ฌธ์ œ ์„ค๋ช…

ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜๋Š” F(0) = 0, F(1) = 1์ผ ๋•Œ, 1 ์ด์ƒ์˜ n์— ๋Œ€ํ•˜์—ฌ F(n) = F(n-1) + F(n-2)๊ฐ€ ์ ์šฉ๋˜๋Š” ์ˆ˜์ž…๋‹ˆ๋‹ค.
์˜ˆ๋ฅผ ๋“ค์–ด
F(2) = F(0) + F(1) = 0 + 1 = 1
F(3) = F(1) + F(2) = 1 + 1 = 2
F(4) = F(2) + F(3) = 1 + 2 = 3
F(5) = F(3) + F(4) = 2 + 3 = 5
์™€ ๊ฐ™์ด ์ด์–ด์ง‘๋‹ˆ๋‹ค.
2 ์ด์ƒ์˜ n์ด ์ž…๋ ฅ๋˜์—ˆ์„ ๋•Œ, n๋ฒˆ์งธ ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜๋ฅผ 1234567๋กœ ๋‚˜๋ˆˆ ๋‚˜๋จธ์ง€๋ฅผ ๋ฆฌํ„ดํ•˜๋Š” ํ•จ์ˆ˜, solution์„ ์™„์„ฑํ•ด ์ฃผ์„ธ์š”.

์ œํ•œ ์‚ฌํ•ญ

  • n์€ 1 ์ด์ƒ, 100000 ์ดํ•˜์ธ ์ž์—ฐ์ˆ˜์ž…๋‹ˆ๋‹ค.

๐Ÿค” ํ’€์ด ๋ฐฉ๋ฒ•

  1. var fibo: [Int] = Array(repeating: 0, count: n + 1)
    • n๋ฒˆ์งธ ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜๋ฅผ ๊ตฌํ•˜๊ธฐ ์œ„ํ•˜์—ฌ n + 1 ๊ธธ์ด์˜ ๋ฐฐ์—ด์„ ๋งŒ๋“ ๋‹ค.
    • 5๋ฒˆ์งธ ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜๋ฅผ ๊ตฌํ•˜๋ ค๋ฉด 0 ~ 5๊นŒ์ง€ ์ด 6๊ฐœ์˜ ๋ฐฐ์—ด์ด ํ•„์š”ํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.
  2. fibo[i] = (fibo[i - 2] + fibo[i - 1]) % 1234567
    • (n - 2)๋ฅผ A, (n - 1)์„ B, 1234567์„ C๋ผ๊ณ  ํ•  ๋•Œ, n % C๋Š” (A + B) % C์ด๋‹ค.
    • ๋ชจ๋“ˆ๋Ÿฌ ์—ฐ์‚ฐ์˜ ์„ฑ์งˆ (A + B) % C = ((A % C) + (B % C)) % C๋ฅผ ์ด์šฉํ•˜์—ฌ ๊ฒฐ๊ณผ๋ฅผ ๊ตฌํ•œ๋‹ค.

๐Ÿ‘ฉ๐Ÿป‍๐Ÿ’ป Swift Code

import Foundation

func solution(_ n:Int) -> Int {
    var fibo: [Int] = Array(repeating: 0, count: n + 1)
    fibo[1] = 1

    for i in 2...n {
        fibo[i] = (fibo[i - 2] + fibo[i - 1]) % 1234567
    }

    return fibo[n]
}

 

 

 

์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜

ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜๋Š” F(0) = 0, F(1) = 1์ผ ๋•Œ, 1 ์ด์ƒ์˜ n์— ๋Œ€ํ•˜์—ฌ F(n) = F(n-1) + F(n-2) ๊ฐ€ ์ ์šฉ๋˜๋Š” ์ˆ˜ ์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ๋“ค์–ด F(2) = F(0) + F(1) = 0 + 1 = 1 F(3) = F(1) + F(2) = 1 + 1 = 2 F(4) = F(2) + F(3) = 1 + 2 = 3 F(5) = F(3) + F(4) =

programmers.co.kr

 

๋Œ“๊ธ€
๊ณต์ง€์‚ฌํ•ญ
์ตœ๊ทผ์— ์˜ฌ๋ผ์˜จ ๊ธ€
์ตœ๊ทผ์— ๋‹ฌ๋ฆฐ ๋Œ“๊ธ€
Total
Today
Yesterday
๋งํฌ
ยซ   2024/09   ยป
์ผ ์›” ํ™” ์ˆ˜ ๋ชฉ ๊ธˆ ํ† 
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
๊ธ€ ๋ณด๊ด€ํ•จ