Jieunny์ ๋ธ๋ก๊ทธ
[JS] ํ๋ก๊ทธ๋๋จธ์ค - ๊ธฐ๋ฅ ๊ฐ๋ฐ ๋ณธ๋ฌธ
๐ ๋ฌธ์
ํ๋ก๊ทธ๋๋จธ์ค ํ์์๋ ๊ธฐ๋ฅ ๊ฐ์ ์์ ์ ์ํ ์ค์ ๋๋ค. ๊ฐ ๊ธฐ๋ฅ์ ์ง๋๊ฐ 100%์ผ ๋ ์๋น์ค์ ๋ฐ์ํ ์ ์์ต๋๋ค.
๋, ๊ฐ ๊ธฐ๋ฅ์ ๊ฐ๋ฐ์๋๋ ๋ชจ๋ ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ ๋ค์ ์๋ ๊ธฐ๋ฅ์ด ์์ ์๋ ๊ธฐ๋ฅ๋ณด๋ค ๋จผ์ ๊ฐ๋ฐ๋ ์ ์๊ณ , ์ด๋ ๋ค์ ์๋ ๊ธฐ๋ฅ์ ์์ ์๋ ๊ธฐ๋ฅ์ด ๋ฐฐํฌ๋ ๋ ํจ๊ป ๋ฐฐํฌ๋ฉ๋๋ค.
๋จผ์ ๋ฐฐํฌ๋์ด์ผ ํ๋ ์์๋๋ก ์์ ์ ์ง๋๊ฐ ์ ํ ์ ์ ๋ฐฐ์ด progresses์ ๊ฐ ์์ ์ ๊ฐ๋ฐ ์๋๊ฐ ์ ํ ์ ์ ๋ฐฐ์ด speeds๊ฐ ์ฃผ์ด์ง ๋ ๊ฐ ๋ฐฐํฌ๋ง๋ค ๋ช ๊ฐ์ ๊ธฐ๋ฅ์ด ๋ฐฐํฌ๋๋์ง๋ฅผ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํ์ธ์.
์ ํ ์ฌํญ
- ์์ ์ ๊ฐ์(progresses, speeds๋ฐฐ์ด์ ๊ธธ์ด)๋ 100๊ฐ ์ดํ์ ๋๋ค.
- ์์ ์ง๋๋ 100 ๋ฏธ๋ง์ ์์ฐ์์ ๋๋ค.
- ์์ ์๋๋ 100 ์ดํ์ ์์ฐ์์ ๋๋ค.
- ๋ฐฐํฌ๋ ํ๋ฃจ์ ํ ๋ฒ๋ง ํ ์ ์์ผ๋ฉฐ, ํ๋ฃจ์ ๋์ ์ด๋ฃจ์ด์ง๋ค๊ณ ๊ฐ์ ํฉ๋๋ค. ์๋ฅผ ๋ค์ด ์ง๋์จ์ด 95%์ธ ์์ ์ ๊ฐ๋ฐ ์๋๊ฐ ํ๋ฃจ์ 4%๋ผ๋ฉด ๋ฐฐํฌ๋ 2์ผ ๋ค์ ์ด๋ฃจ์ด์ง๋๋ค.
๐ก ์์ด๋์ด
100%์์ ํ์ฌ ์งํ %๋ฅผ ๋นผ๊ณ , ํ๋ฃจ์ ํ ์ ์๋ ์์ ๋์ผ๋ก ๋๋ ์ ๊ฐ task๋ง๋ค ์๋ฃ๋๊ธฐ๊น์ง ๋จ์ ์ผ์๋ฅผ ๊ตฌํ๋ค.
์ ์์ ์ผ์ด ๋๋์ง ์์ผ๋ฉด ๋ท ์์ ์ผ์ด ์๋ฃ๋์ด๋ ๋ฐฐํฌํ ์ ์๊ธฐ ๋๋ฌธ์ ์ผ๋จ ๋งจ ์ฒ์ task์ ๋จ์ ๋ ์ ์คํ์ ๋ฃ๋๋ค.
๊ทธ๋ฆฌ๊ณ 2๋ฒ์งธ ์์๋ถํฐ ๋๋ฉด์, ๋งจ ์ฒ์ ์ผ๋ณด๋ค ์ ๊ฒ ๋จ์์ผ๋ฉด ์คํ์ ๋ฃ๊ณ , ๋ง์ฝ ๋งจ ์ฒ์ ์ผ๋ณด๋ค ๋ง์ด ๋จ์ ์ผ์ ๋ง๋๋ฉด ์ผ๋จ ์คํ์ ๋ค ๋น์ฐ๊ณ , ๋น์ด ์คํ์ ๊ธธ์ด๋งํผ answer์ pushํด์ค๋ค. ๊ทธ๋ฆฌ๊ณ ๋ค์ ๋งจ ์ฒ์ ์ผ๋ณด๋ค ๋ง์ด ๋จ์ ์ผ์ ์คํ์ pushํ๋ค.
์ด ๊ณผ์ ์ ๋ค ๊ฑฐ์ณค์ ๋ ์คํ์ด ๋น์ด์์ง ์๋ค๋ฉด, ์คํ์ ๋จ์ ์ผ๋ค์ ํ๋ฒ์ ๋ฐฐํฌํ ์ ์์ผ๋ฏ๋ก ๋ค ๋นผ์ฃผ๊ณ ๊ทธ ๊ธธ์ด๋งํผ answer์ pushํ๋ค.
โ๏ธ ํ์ด
function solution(progresses, speeds) {
var answer = [];
let leftDay = [];
let stk = [];
for(let i=0; i<progresses.length; i++){
leftDay.push(Math.ceil((100-progresses[i]) / speeds[i]));
}
stk.push(leftDay[0]);
for(let i=1; i<leftDay.length; i++){
if(leftDay[i] <= stk[0] || stk.length === 0) {
stk.push(leftDay[i]);
}
else if(leftDay[i] > stk[0]) {
let complete = stk.length;
stk.splice(0, complete);
answer.push(complete)
stk.push(leftDay[i]);
}
}
if(stk.length > 0) answer.push(stk.length);
return answer;
}
'Study > Coding Test' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[JS] ํ๋ก๊ทธ๋๋จธ์ค - ๋ด์ค ํด๋ฌ์คํฐ๋ง (0) | 2023.03.03 |
---|---|
[JS] ํ๋ก๊ทธ๋๋จธ์ค - ์ฐ์ ๋ถ๋ถ ์์ด ํฉ์ ๊ฐ์ (0) | 2023.03.03 |
[JS] ํ๋ก๊ทธ๋๋จธ์ค - n^2 ๋ฐฐ์ด ์๋ฅด๊ธฐ (0) | 2023.02.28 |
[JS] ํ๋ก๊ทธ๋๋จธ์ค - ํํ (0) | 2023.02.28 |
[JS] ํ๋ก๊ทธ๋๋จธ์ค - ๊ทค ๊ณ ๋ฅด๊ธฐ (0) | 2023.02.28 |