๐Ÿ‘’ ๋ญ? JS๋กœ PS๋ฅผ ํ•œ๋‹ค๊ณ ?

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค][JS / Javascript] ์žˆ์—ˆ๋Š”๋ฐ์š” ์—†์—ˆ์Šต๋‹ˆ๋‹ค

์„ ๋‹ฌ 2023. 5. 11. 23:31
๋ฐ˜์‘ํ˜•

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

 

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

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

programmers.co.kr

 

ํ’€์ด

    progresses = progresses.map((v, idx) => Math.ceil((100-v)/speeds[idx]));

ํ”„๋กœ๊ทธ๋ ˆ์Šค ๋ฐฐ์—ด์„ ๊ฐœ๋ฐœ์— ํ•„์š”ํ•œ ๋‚ ์˜ ์ˆ˜๋กœ ๋ฐ”๊ฟ”์ฃผ์—ˆ๋‹ค

 

์ดํ›„ ์Šคํƒ์„ ์ด์šฉํ•˜์˜€๋‹ค.

์•ž ๊ธฐ๋Šฅ์ด ๋” ์˜ค๋ž˜๊ฑธ๋ฆฐ๋‹ค๋ฉด ํ•ด๋‹น ๊ธฐ๋Šฅ์€ ์•ž ๊ธฐ๋Šฅ๊ณผ ๋™์‹œ์— ๋ฐฐํฌ๋˜๋Š” ๊ฒƒ์ด๋ฏ€๋กœ ํ•ด๋‹น ๋ฐฐํฌ์˜ ๊ธฐ๋Šฅ ์ˆ˜๋ฅผ ๋Š˜๋ ค์ฃผ์—ˆ๋‹ค. (ans ๋งˆ์ง€๋ง‰ ์š”์†Œ +1)

์•ž ๊ธฐ๋Šฅ์ด ๋” ๋น ๋ฅด๊ฒŒ ๋๋‚œ๋‹ค๋ฉด ํ•ด๋‹น ๊ธฐ๋Šฅ์€ ์•ž ๊ธฐ๋Šฅ์ด ๋๋‚œ ํ›„์— ๋ฐฐํฌ ๋˜๋Š” ๊ฒƒ์ด๋ฏ€๋กœ ๋ฐฐํฌ๋ฅผ ์ถ”๊ฐ€ํ•ด์ฃผ์—ˆ๋‹ค (ans์— ์ถ”๊ฐ€)

 

function solution(progresses, speeds) {
    var ans = [];
    progresses = progresses.map((v, idx) => Math.ceil((100-v)/speeds[idx]));
    var stack = [];
    for(let i of progresses) {
        if(stack.length!==0 && stack[stack.length-1] >= i) {
            ans[ans.length-1]++;
        } else {
            stack.push(i);
            ans.push(1);
        }
    }
    return ans;
}

 

๋งจ ์ฒ˜์Œ ํ…Œ์ŠคํŠธ์ผ€์ด์Šค 1,2,4,5๋งŒ ์‹คํŒจํ•ด์„œ ๋ฐ˜๋ก€๋ฅผ ์ฐพ์•„๋ดค๋”๋‹ˆ ๋‚ ์งœ๊ฐ€ ๊ฐ™์€๊ฒฝ์šฐ๋ฅผ ์ƒ๊ฐํ•˜์ง€ ๋ชปํ–ˆ์—ˆ๋‹ค.

>๋ฅผ >=๋กœ ๋ฐ”๊ฟจ๋”๋‹ˆ ์„ฑ๊ณตํ•˜์˜€๋‹ค

๋ฐ˜์‘ํ˜•