๐ข Algorithm
[Javascript][Programmers] ๊ธฐ๋ฅ ๊ฐ๋ฐ
์ค๋๊ธฐ
2024. 8. 16. 10:53
๋ฐ์ํ
๋ฌธ์
๋ฌธ์ ์์ ์ ์๋ ์กฐ๊ฑด์ ๋ฐ๋ฅด๋ฉด, ๋ค์ ์๋ ๊ธฐ๋ฅ์ ์์ ์๋ ๊ธฐ๋ฅ์ด ๋ฐฐํฌ๋ ๋ ํจ๊ป ๋ฐฐํฌ๋์ด์ผ ํฉ๋๋ค. ์ด๋ฌํ ์๊ตฌ์ฌํญ์ ๊ธฐ๋ฅ๋ค ๊ฐ์ ์ ํ ๊ด๊ณ์ ์์กด์ฑ์ ๋ํ๋ด๋ฉฐ, ์ด๋ฅผ ํจ๊ณผ์ ์ผ๋ก ๊ด๋ฆฌํ๊ธฐ ์ํด ํ(Queue)๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์ ํฉํฉ๋๋ค.
๋์ ํ์ด
- ์๊ฐ๋ณต์ก๋: O(N)
function solution(progresses, speeds) {
const answer = [];
// ๊ฐ ์์
์ ์๋ฃ ์ผ์ ๊ณ์ฐ
let days = progresses.map((progress, i) => Math.ceil((100 - progress) / speeds[i]));
let dDay = days[0];
let count = 0;
for (let day of days) {
if (day <= dDay) {
count++;
} else {
answer.push(count);
count = 1;
dDay = day;
}
}
answer.push(count); // ๋ง์ง๋ง ๋จ์ ๋ฐฐํฌ ์์
์ถ๊ฐ
return answer;
}
๊ฐ ์์ ์ ์๋ฃ ์ผ์๋ฅผ ๊ตฌํ ํ, ์ฒซ ๋ฒ์งธ ์์ ์ ์๋ฃ ์ผ์๋ฅผ ๊ธฐ์ค์ผ๋ก ์ดํ ์์ ๋ค์ ์์ฐจ์ ์ผ๋ก ๋น๊ตํฉ๋๋ค. ๋ง์ฝ ์์ ์ด ํด๋น ์ผ์ ๋ด์ ์๋ฃ๋ ์ ์๋ค๋ฉด ๋์ผํ ๋ฐฐํฌ๋ก ๋ฌถ๊ณ , ๊ทธ๋ ์ง ์์ผ๋ฉด ํด๋น ์์ ์ ์๋ฃ ์ผ์๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ค์ ์์ ๋ค์ ๋ฐฐํฌํฉ๋๋ค. ์ด๋ฅผ ๋ชจ๋ ์์ ์ด ์๋ฃ๋ ๋๊น์ง ๋ฐ๋ณตํฉ๋๋ค.
๋ฐ์ํ