πŸ”₯ Algorithm/Programmers

[ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€ Lv.2] nμ§„μˆ˜ κ²Œμž„(js)

Lennon 2022. 1. 22. 07:11
728x90
λ°˜μ‘ν˜•

https://programmers.co.kr/learn/courses/30/lessons/17687?language=javascript 

 

μ½”λ”©ν…ŒμŠ€νŠΈ μ—°μŠ΅ - [3μ°¨] nμ§„μˆ˜ κ²Œμž„

Nμ§„μˆ˜ κ²Œμž„ νŠœλΈŒκ°€ ν™œλ™ν•˜λŠ” μ½”λ”© λ™μ•„λ¦¬μ—μ„œλŠ” μ „ν†΅μ μœΌλ‘œ ν•΄μ˜€λŠ” κ²Œμž„μ΄ μžˆλ‹€. 이 κ²Œμž„μ€ μ—¬λŸ¬ μ‚¬λžŒμ΄ λ‘₯κΈ€κ²Œ μ•‰μ•„μ„œ 숫자λ₯Ό ν•˜λ‚˜μ”© μ°¨λ‘€λŒ€λ‘œ λ§ν•˜λŠ” κ²Œμž„μΈλ°, κ·œμΉ™μ€ λ‹€μŒκ³Ό κ°™λ‹€. 숫자λ₯Ό 0

programmers.co.kr

function solution(n, t, m, p){ 
    let changeNumber = [];
    let answer = '';
    let idx = p-1;
    
    for(let i=0; i<t*m; i++){
        changeNumber.push(i.toString(n));
    }
    
    changeNumber = changeNumber.join("");
    
    while(answer.length < t){
        answer+=changeNumber[idx].toUpperCase();
        idx+=m;
    }
    
    return answer;
}

changeNumber 배열에 i값에 λŒ€ν•΄ μ§„μˆ˜λ³€ν™˜μ„ ν•œ 것을 pushν•œλ‹€. 

κ·Έ ν›„ join으둜 λ¬Έμžμ—΄λ‘œ λ§Œλ“€μ–΄μ€€λ‹€.

 

ex) 2μ§„μˆ˜λΌλ©΄? => 0,1,2,3,4 => ['0', '1', '10', '11', '100'] => '011011100'   

 // t*m은 μ΅œμ†Œν•œ μ €μ •λ„λŠ” λŒμ•„μ•Ό λ¬Έμ œκ°€ μ—†κ² λ‹€κ³  μ •μ˜ν–ˆλ‹€.

 

κ·Έ ν›„ μˆœμ„œ(p-1) 및 μ°Έκ°€μž 수(m)와 λ§ν•΄μ•Όν•˜λŠ” 수(t)λ₯Ό κ³ λ €ν•΄ while문으둜 answer에 닡을 μΆ”κ°€ν•΄μ£Όκ³  리턴해주면 λœλ‹€.

728x90
λ°˜μ‘ν˜•