ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค[JS] > ๊ฑฐ์Šค๋ฆ„๋ˆ

2024. 9. 6. 16:33ยท๐Ÿ”’Algorithm

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ๊ฑฐ์Šค๋ฆ„๋ˆ

 

๐Ÿ”ฅ๋ฌธ์ œ๋งํฌ

https://school.programmers.co.kr/learn/courses/30/lessons/12907

 

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”.

programmers.co.kr

 

๐Ÿ”ฅ์ฒซ๋ฒˆ์งธ ํ’€์ด ( ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค ๋ชจ๋‘ ํ†ต๊ณผ but ์‹œ๊ฐ„์ดˆ๊ณผ )

์ฒ˜์Œ์— ๋‚ด๊ฐ€ ์ž‘์„ฑํ•œ ์ฝ”๋“œ์ด๋‹ค. ( ํ•˜๋‹จ ์ฐธ์กฐ ) 

์ด ์ฝ”๋“œ๋Š” ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋Š” ๋ชจ๋‘ ํ†ต๊ณผ์ง€๋งŒ ์‹œ๊ฐ„์ดˆ๊ณผ ํ…Œ์ŠคํŠธ์—์„œ ๋ชจ๋‘ ์‹œ๊ฐ„์ดˆ๊ณผ๊ฐ€ ๋‚˜์™”๋‹ค๐Ÿ˜ญ 

๋‹ค๋ฅธ์‚ฌ๋žŒ๋“ค์˜ ์ฝ”๋“œ๋ฅผ ์ฐธ๊ณ ํ•ด๋ณด๋‹ˆ ์žฌ๊ท€๊ฐ€ ์•„๋‹Œ dp ( dynamic programming : ์ตœ์ ํ™” ) ๋ฌธ์ œ์˜€๋˜ ๊ฒƒ ๊ฐ™๋‹ค.

function solution(n, money) {
    let answer = 0;
    money.sort((a,b)=>a-b)    
    const recursive =(rest,arr)=>{
        if(arr.length===0 || rest <=0){
            return
        }
        let fixed = arr.shift()
        if(fixed>rest){
            return
        }
        let count = 0;
        while(1){ 
            if((rest-fixed*count)>0){
                let newArr = [...arr]
                recursive(rest-fixed*count,newArr)
            }else if((rest-fixed*count)===0){
                ++answer
                return
            }else{
                return
            }    
            ++count
        }
    }
    let sliced = money.slice(1)
    let fixed = money[0]
    recursive(n,money)
    

    return answer%1000000007;
}

 

 

๐Ÿ”ฅ๋‘๋ฒˆ์งธ ํ’€์ด ( ๋‹ค๋ฅธ ์‚ฌ๋žŒ ํ’€์ด ์ฐธ๊ณ )

์ฒซ๋ฒˆ์งธ ํ’€์ด์— ๋น„ํ•ด newArr = [...arr]์™€ ๊ฐ™์ด ๋ฐฐ์—ด์„ ๋ณต์‚ฌํ•  ํ•„์š”๋„ ์—†๊ณ  sort()ํ•  ํ•„์š”๋„ ์—†๊ณ  ์žฌ๊ท€๋ฅผ ์‚ฌ์šฉํ•  ํ•„์š”๋„ ์—†์–ด ๊ณ„์‚ฐํšŸ์ˆ˜๊ฐ€ ํ™•์‹คํžˆ ์ค„์–ด๋“ ๋‹ค. 

 

dp[n] ์€ n์„ ๋งŒ๋“ค์ˆ˜ ์žˆ๋Š” ์ด ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ์˜๋ฏธํ•œ๋‹ค.

์•„๋ž˜ ์ฝ”๋“œ๋ฅผ ๋ณด๊ณ  ์—ฐ์‚ฐ๊ณผ์ •์„ ๊ณฑ์”น์–ด ๋ณด์ž! 

function solution(n, moneyList) {

    
    let dp = Array(n+1).fill(0)
    dp[0]=1
    
     for(const money of moneyList){
         for(let i=money; i<n+1; ++i){
             dp[i] = dp[i] + dp[i-money]
         }
         
     }
    
    return dp[n]%1000000007
    
}

 

 

๐Ÿ”ฅ์ฐธ๊ณ 

https://velog.io/@pmthk__/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4-%EA%B1%B0%EC%8A%A4%EB%A6%84%EB%8F%88-Lv.3-JS

 

๊ฑฐ์Šค๋ฆ„๋ˆ | Lv.3 | JS

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค, ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต, ๊ฑฐ์Šค๋ฆ„๋ˆ, Lv.3, ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ, DP

velog.io

 

'๐Ÿ”’Algorithm' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค[JS] > [PCCP ๊ธฐ์ถœ๋ฌธ์ œ] 2๋ฒˆ / ํผ์ฆ ๊ฒŒ์ž„ ์ฑŒ๋ฆฐ์ง€  (1) 2024.09.11
ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค[JS] > [PCCP ๊ธฐ์ถœ๋ฌธ์ œ] 3๋ฒˆ / ์ถฉ๋Œ์œ„ํ—˜ ์ฐพ๊ธฐ  (0) 2024.09.11
ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค[JS] > ๋ฆฌ์ฝ”์ณ‡ ๋กœ๋ด‡  (0) 2024.08.25
ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค[JS] > ๊ด„ํ˜ธ ๋ณ€ํ™˜ ( 2020 KAKAO BLIND RECRUITMENT )  (0) 2024.08.24
ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค[JS] > ์ด๋ชจํ‹ฐ์ฝ˜ ํ• ์ธํ–‰์‚ฌ  (0) 2024.08.24
'๐Ÿ”’Algorithm' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค[JS] > [PCCP ๊ธฐ์ถœ๋ฌธ์ œ] 2๋ฒˆ / ํผ์ฆ ๊ฒŒ์ž„ ์ฑŒ๋ฆฐ์ง€
  • ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค[JS] > [PCCP ๊ธฐ์ถœ๋ฌธ์ œ] 3๋ฒˆ / ์ถฉ๋Œ์œ„ํ—˜ ์ฐพ๊ธฐ
  • ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค[JS] > ๋ฆฌ์ฝ”์ณ‡ ๋กœ๋ด‡
  • ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค[JS] > ๊ด„ํ˜ธ ๋ณ€ํ™˜ ( 2020 KAKAO BLIND RECRUITMENT )
devWarrior
devWarrior
  • devWarrior
    devWarrior
    devWarrior
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • ๐ŸงฉDev (263)
      • โญFE (34)
      • ๐Ÿ”’Algorithm (155)
      • โž•Etc. (11)
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    • ํ™ˆ
    • ํƒœ๊ทธ
    • ๋ฐฉ๋ช…๋ก
    • ๊ธ€์“ฐ๊ธฐ
    • ๊ด€๋ฆฌ
  • ๋งํฌ

  • ๊ณต์ง€์‚ฌํ•ญ

  • ์ธ๊ธฐ ๊ธ€

  • ํƒœ๊ทธ

    leetcode
    dp
    ์˜ค๋ธ”์™„
    BFS
    js
    ์ฝ”๋”ฉํ…Œ์ŠคํŠธ
    node.js
    ์‹ค๋ฒ„3
    ๋ฐฑ์ค€
    ์ž์Šค
    ๊ณจ๋“œ5
    Easy
    ์•Œ๊ณ ๋ฆฌ์ฆ˜
    nodejs
    ๊ทธ๋ฆฌ๋””
    react
    DFS
    Algorithm
    ์ฝ”ํ…Œ
    ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค
    ๊ตฌํ˜„
    ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ
    ์‹ค๋ฒ„1
    FE
    ํ”„๋ก ํŠธ์—”๋“œ
    ์‹ค๋ฒ„2
    ์‹ค๋ฒ„4
    javascript
    ํ‹ฐ์Šคํ† ๋ฆฌ์ฑŒ๋ฆฐ์ง€
    Lv2
  • ์ตœ๊ทผ ๋Œ“๊ธ€

  • ์ตœ๊ทผ ๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.3
devWarrior
ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค[JS] > ๊ฑฐ์Šค๋ฆ„๋ˆ
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”