๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
TIL -์ผ๊ฐ„ํ•™์Šต๊ธฐ๋ก/์•Œ๊ณ ๋ฆฌ์ฆ˜

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค lv.2 ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜

by ___Jin 2022. 3. 6.

๋ฌธ์ œ

 

ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜์—ด์€ ๋ฐ˜๋ณต๋ฌธ, ์žฌ๊ท€, DP์—์„œ ๊พธ์ค€ํžˆ ๋‹ค๋ค„์˜จ ๋ถ€๋ถ„์ด๋ผ ๊ฐ€๋ฒผ์šด ๋งˆ์Œ์œผ๋กœ ์‹œ์ž‘ํ–ˆ๋‹ค. 

๋‹น์—ฐํžˆ, ํ”ผ๋ณด๋‚˜์น˜๋Š” ์žฌ๊ท€์ง€.. ํ•˜๊ณ  1์ฐจ ์‹œ๋„ ํ–ˆ์œผ๋‚˜..

function solution(n) {
  let fibo = (n) => {  //
    if (arr[n] !== undefined){
      return arr[n];
    }
    arr[n] = fibo(n-1)+fibo(n-2);
    return arr[n]% 1234567;
  }    
     return fibo(n);
}
//์Šคํƒ ์˜ค๋ฒ„ํ”Œ๋กœ์šฐ๋กœ ์Šคํƒ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๋„˜๋Š” ํ•จ์ˆ˜ํ˜ธ์ถœ. ๋’ค์ชฝ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค ํ†ต๊ณผ์•ˆ๋จ

 2์ฐจ์‹œ๋„

 function solution(n) {
   let memo = [0, 1, 1];
     for(let i = 3; i <= n; i++){
         memo[i] = memo[i-1]+memo[i-2];
     }
     return memo[n] %1234567 //์ด๋ฏธ ์˜ค๋ฒ„ํ”Œ๋กœ์šฐ๋กœ ๊ฐ’์ด ๋ง๊ฐ€์ง„ ์ƒํƒœ
 }

3์ฐจ ์‹œ๋„ ์„ฑ๊ณต

function solution(n) {
    let memo = [0, 1, 1];
    for(let i = 3; i <= n; i++){
//(a+b)%c === ((a%c)+(b%c))%c ๋ชจ๋“ˆ๋Ÿฌ ์—ฐ์‚ฐ์˜ ์„ฑ์งˆ
        memo[i] = (memo[i-1] + memo[i-2])%1234567
//๋ฐฐ์—ด ์š”์†Œ์— ๋‚˜๋จธ์ง€๊ฐ’์„ ๋„ฃ์–ด ์คŒ์œผ๋กœ ์˜ค๋ฒ„ํ”Œ๋กœ์šฐ๋ฅผ ๋ฐฉ์ง€
    }
    return memo[n]

}

๋Œ“๊ธ€