function solution(N, stages) {
let answer = [];
for (let i = 1; i <= N; i++) {
let failure = stages.filter((x) => x === i).length;
let challenger = stages.filter((x) => x >= i).length;
let percent = failure / challenger;
answer.push([i, percent]);
}
return answer.sort((a, b) => b[1] - a[1]).map((x) => x[0]);
}
- ๊ฐ ์คํ ์ด์ง๋ง๋ค ์คํจ์จ์ ๊ณ์ฐํ๋ค.(๋ฐ๋ณต๋ฌธ)
- answer ๋ฐฐ์ด์ [์คํ ์ด์ง, ์คํจ์จ] ํํ์ ๋ฐฐ์ด์ pushํ์ฌ ๋ฐฐ์ด ๋ด ๋ฐฐ์ด ๊ฐ์ฒด๋ฅผ ์์ฑํ๋ค.
- ์ฌ๊ธฐ๊ฐ ์กฐ๊ธ ์ฌ๋ฏธ์๋ ๋ถ๋ถ! ๋ฐฐ์ด์ ๋ด๋ฆผ์ฐจ์์ผ๋ก sortingํ๋ ์คํจ์จ์ ๊ธฐ์ค์ผ๋ก sortingํ๊ธฐ์ b[1] - a[1]์ ๋ฆฌํดํ๋ ์ฝ๋ฐฑํจ์๋ฅผ ๋ฃ์ด์ค๋ค.
- ์์ฐ์ค๋ฝ๊ฒ ์คํ ์ด์ง ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌ๋ ๋ฐฐ์ด์ ๋ค์ํ๋ฒ ์คํจ์จ ๊ธฐ์ค ๋ด๋ฆผ์ฐจ์ ์ ๋ ฌํ ๊ฒ์ด๊ธฐ ๋๋ฌธ์, ์คํจ์จ์ด ๊ฐ์ ๋๋ ๋ฌธ์ ์ ์กฐ๊ฑด์ ๋ง์กฑํ๋ค.
์ฒ์์ ์คํจ์จ์ ๊ธฐ์ค์ผ๋ก ์ ๋ ฌ์ ํด์ผํ๋๋ฐ, ๊ฐ ์คํจ์จ์ด ํด๋นํ๋ ์คํ
์ด์ง ์ซ์๋ฅผ ์ด๋ป๊ฒ ๊ฐ์ ธ๊ฐ์ผํ๋์ง ํท๊ฐ๋ ธ๋ ๋ฌธ์
๋ฐ๋ก ๋ฐฐ์ด 2๊ฐ๋ฅผ ๋ง๋ค์ด๋ ๋ณด๊ณ , ๊ฐ์ฒด ํํ๋ก๋ ํด๋ณด์๋ค.
๋ฐ๋ก ๋ฐฐ์ด์ ๋ง๋ค๋ฉด ๋น์ฐํ ์คํจ์จ ์ ๋ ฌ๋๋ ๊ฒ์ ์คํ
์ด์ง ์ ๋ ฌ์ ๋ฐ์ํด์ค ์๊ฐ ์๊ณ , ์คํจ์จ ๋ฐฐ์ด์ ์ ๋ ฌํ ํ ๊ฐ ์คํจ์จ์ key, ์คํ
์ด์ง๋ฅผ value๋ก ํ๋ ๊ฐ์ฒด๋ฅผ ํตํด ํธ์ถํด๋ ์คํจ์จ์ด ๊ฐ์ ๊ฒฝ์ฐ๋ ๊ฐ์ value(์คํ
์ด์ง)๊ฐ ๋ค์ด์ค๊ฒ ๋์ด์ ์คํจ ใ
ใ
ใ
์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ๋ฅผ ๋ ์ฌ๋์๊ฒ(์ฝ๋ ํ์คํ์ค, ๋ด์ฅํจ์์ ์๊ฐ๋ณต์ก๋๋ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์๊ฐํ๋ฉด์) ํ๊ฒ ๋๋ ๋ ์ด ์ผ๋ฅธ ์์ผ๋ฉด ์ข๊ฒ ๋ค.
'๐ JavaScript > ํ๋ก๊ทธ๋๋จธ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[JS] ์์ ๋ง๋ค๊ธฐ (0) | 2022.06.30 |
---|---|
[JS] ๊ทธ๋ฆฌ๋ - ์ฒด์ก๋ณต (0) | 2022.06.28 |
[JS] 2018์นด์นด์ค - ๋น๋ฐ์ง๋ (0) | 2022.06.28 |
[JS] 2018์นด์นด์ค - ๋คํธ ๊ฒ์ (0) | 2022.06.28 |
[JS] ์ฐ์ต๋ฌธ์ - ๋ฌธ์์ด ๋ค๋ฃจ๊ธฐ ๊ธฐ๋ณธ (0) | 2022.06.26 |