πŸ”₯ Algorithm/Programmers

[ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€] κΈ°λŠ₯ 개발 (js)

Lennon 2021. 10. 25. 19:07
728x90
λ°˜μ‘ν˜•

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

 

μ½”λ”©ν…ŒμŠ€νŠΈ μ—°μŠ΅ - κΈ°λŠ₯개발

ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€ νŒ€μ—μ„œλŠ” κΈ°λŠ₯ κ°œμ„  μž‘μ—…μ„ μˆ˜ν–‰ μ€‘μž…λ‹ˆλ‹€. 각 κΈ°λŠ₯은 진도가 100%일 λ•Œ μ„œλΉ„μŠ€μ— λ°˜μ˜ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 또, 각 κΈ°λŠ₯의 κ°œλ°œμ†λ„λŠ” λͺ¨λ‘ λ‹€λ₯΄κΈ° λ•Œλ¬Έμ— 뒀에 μžˆλŠ” κΈ°λŠ₯이 μ•žμ— μžˆλŠ”

programmers.co.kr

 

function solution(progresses, speeds) {
    
    const days = progresses.map((v,i) => Math.ceil((100 - progresses[i]) / speeds[i]))
    const answer = [];
    
    for(let i = 0; i < days.length; i++){
        const result = [days[i]];
        for(let j = i+1; j < days.length; j++){
            if(days[i] >= days[j]) result.push(days[j]);
            else break;
        }
        answer.push(result);
        i += result.length-1;
    }
    return answer.map((a) => a.length);
}

μŠ€νƒκ³Ό 큐λ₯Ό μ΄μš©ν•΄ ν‘ΈλŠ” λ¬Έμ œμ˜€λ‹€. 

 

shiftλ₯Ό μ΄μš©ν•΄ ν’€μ–΄λ΄€μ§€λ§Œ 속도가 느렀 κ·Έλƒ₯ for문으둜 인덱슀 값을 μ‘°μ ˆν•˜μ—¬ μž‘μ„±ν•˜μ˜€λ‹€.

728x90
λ°˜μ‘ν˜•