โ๏ธ ๋ฌธ์ ๋งํฌ
https://school.programmers.co.kr/learn/courses/30/lessons/42586?language=javascript
ํ๋ก๊ทธ๋๋จธ์ค
์ฝ๋ ์ค์ฌ์ ๊ฐ๋ฐ์ ์ฑ์ฉ. ์คํ ๊ธฐ๋ฐ์ ํฌ์ง์ ๋งค์นญ. ํ๋ก๊ทธ๋๋จธ์ค์ ๊ฐ๋ฐ์ ๋ง์ถคํ ํ๋กํ์ ๋ฑ๋กํ๊ณ , ๋์ ๊ธฐ์ ๊ถํฉ์ด ์ ๋ง๋ ๊ธฐ์ ๋ค์ ๋งค์นญ ๋ฐ์ผ์ธ์.
programmers.co.kr
โ๏ธ ๋ฌธ์ ์์ฝ
๋ฐฐํฌ๋์ด์ผ ํ๋ ์์ ๋ค์ด ์์๋๋ก ๋ด๊ธด ๋ฐฐ์ด progresses๊ฐ ์กด์ฌํ๋ฉฐ ๊ฐ ์์ ์ ๊ฐ์ ๋ฐฐํฌ๋ ์ ๋๋ฅผ ์๋ฏธํ๋ค. ๋งค์ผ ์ํํ ์ ์๋ ์์ ์ ์๋๊ฐ ๋ด๊ธด ๋ฐฐ์ด speeds๋ ์กด์ฌํ๋ค. ๊ฐ ์์ ๋ค์ ๋ฐฐํฌ ์์๊ฐ ์กด์ฌํ๊ธฐ ๋๋ฌธ์ ๋จผ์ 100% ๋ฐฐํฌ ์ค๋น๊ฐ ๋๋๋ผ๋ ์์ ์์ ์ด ๋ฐฐํฌ ์ค๋น๊ฐ ๋์ง ์๋๋ค๋ฉด ๋ฐฐํฌ๊ฐ ๋ถ๊ฐ๋ฅํ๋ค. ๋ฐฐํฌ๊ฐ ๊ฐ๋ฅํ ๋ ์ ๋ฐฐํฌํ ์ ์๋ ์์ ์ ๊ฐ์๋ฅผ ๋ด์ ๋ฐฐ์ด์ ๋ฐํํ๋ ๋ฌธ์ ์ด๋ค.
๐ด ์ ํ์ฌํญ
- ์์ ์ ๊ฐ์(progresses, speeds๋ฐฐ์ด์ ๊ธธ์ด)๋ 100๊ฐ ์ดํ์ด๋ค.
- ์์ ์ง๋๋ 100 ๋ฏธ๋ง์ ์์ฐ์์ด๋ค.
- ์์ ์๋๋ 100 ์ดํ์ ์์ฐ์์ด๋ค.
- ๋ฐฐํฌ๋ ํ๋ฃจ์ ํ ๋ฒ๋ง ํ ์ ์์ผ๋ฉฐ, ํ๋ฃจ์ ๋์ ์ด๋ฃจ์ด์ง๋ค๊ณ ๊ฐ์ ํ๋ค. ์๋ฅผ ๋ค์ด ์ง๋์จ์ด 95%์ธ ์์ ์ ๊ฐ๋ฐ ์๋๊ฐ ํ๋ฃจ์ 4%๋ผ๋ฉด ๋ฐฐํฌ๋ 2์ผ ๋ค์ ์ด๋ฃจ์ด์ง๋ค.
๐ฉ ์ ๊ทผ๋ฒ
์ฒ์์ ์ ๊ทผํ ๋๋ ๋ ๋ง๋ค ์ด๋ป๊ฒ ์งํํ ์ง ์ง์ ์ ์ด๋ณด๊ณ ๋ฐฐํฌ๋ ์ง๋ฅผ ๊ณ์ฐํด๋ดค๋ค.
๊ณ์ฐ์์ ์๊ฐํด๋ณด๋ {100-๋ฐฐํฌ๋์ ๋}์์ speed๋ฅผ ๋๋๊ณ ์ฌ๋ฆผ์ ํด์ฃผ๋ฉด ์ด ๊ฑธ๋ฆฌ๋ ๋ ์ด ๋์ค๊ฒ๋๋ค.
๋ฐ๋ผ์ progresses๋ฅผ ํ๋์ฉ ์ํํ์ฌ ๊ฐ ์์ ๋ง๋ค ๋ฐฐํฌ๊น์ง ๊ฑธ๋ฆฌ๋ ๋ ์ ๊ณ์ฐํ๊ณ deploy๋ผ๋ ๋ฐฐ์ด์ ์ ์ฅํ๋ ์์ ์ ๋จผ์ ์งํํด์ฃผ๊ณ deploy ๋ฐฐ์ด์ ์ด์ฉํ์ฌ ๋ต์ ์ป์ ์ ์์๋ค.
์์๋ก ๋์ค๋ progresses๋ฅผ ๋ณด๋ฉด [93, 30, 55]์ด๋ค. ์ด ์์ ๋ค์ด ๋ฐฐํฌ๋ ๋ ์ง๋ฅผ ๊ณ์ฐํ์ฌ deploy ๋ฐฐ์ด์ ๋ง๋ค๋ฉด [7, 3, 9]๋ผ๋ ๋ฐฐ์ด์ด ๋ง๋ค์ด์ง๋ค.
๋๋ ๋ต์ ์ํด answer์ด๋ผ๋ ๋ฐฐ์ด์ ๋ง๋ค์ด์ฃผ์๊ณ , ๋จผ์ answer์ 1์ pushํ๊ณ , curr_day์ deploy[0] ์ฆ, 7์ ์ ์ฅํ์๋ค. ์ดํ, deploy๋ฐฐ์ด์ ์ํํ์ฌ curr_day๋ณด๋ค ํ์ฌ deploy[i]๊ฐ ๋ ํฌ๋ฉด answer์ 1์ pushํ๊ณ ๊ทธ๋ ์ง ์์ผ๋ฉด deploy์ ๋ง์ง๋ง ์์์ +1์ ํด์ฃผ๋ ์์ผ๋ก ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ค.
(์ฌ์ง์ ๋์์ ๋ถ๊ณผํฉ๋๋ค. ์ํ์ ์ผ๋ก๋ ๋ง์ง ์์ ์์ ๋๋ค.)
๐ก์ฝ๋
function solution(progresses, speeds) {
let days = [], answer = [];
let deploy = 0;
progresses.forEach((progress, idx) => days.push(Math.ceil((100-progress)/speeds[idx])));
deploy = days[0];
answer.push(1);
for(let i=1; i<days.length; i++){
if(deploy < days[i]){
answer.push(1);
deploy = days[i];
}else {
answer[answer.length-1]++;
}
}
return answer;
}
์ด๋ ๊ฒ ํ๊ณ ๋ค๋ฅธ ์ฌ๋์ ํ์ด๋ฅผ ๋ณด๋ ๋ด ํ์ด๊ฐ ๋์์ง ์์ ํ์ด์์ ๊ธฐ๋ปค๋ค!