ํธ๋๋ฐ ์๊ฐ ์ข ๊ฑธ๋ฆฌ๊ธด ํ๋๋ฐ, ๊ทธ๋๋ ํผ์ ํ์ผ๋ก ํ์ด๋๋ค.
๋ ์์ ๋๊ฒฌํด!
![](https://t1.daumcdn.net/keditor/emoticon/friends1/large/007.gif)
์ฒ์์ ์์ฒญ ๋ณต์กํ๊ฒ ์๊ฐํ๋ค.
(์ฑ๋ฆฐ์ง ํ๋ ์ฌ๋ ์๋ฅผ ๋ฐ๋ก ๋ด๊ณ , ํตํํ ์ฌ๋ ์๋ฅผ ๋ฐ๋ก ๋ด๊ณ ..)
function solution(N, stages) {
let passPeople = {};
let challengePeople = {};
for (let i = 1; i <= N + 1; i++) {
passPeople[i] = challengePeople[i] = 0;
stages.map(stage => {
if (i <= N) {
if (stage > i) passPeople[i] += 1;
if (stage >= i) challengePeople[i] += 1;
} else {
if (stage >= i) passPeople[i - 1] += 1;
if (stage >= i) challengePeople[i - 1] += 1;
}
})
}
let failRate = {};
for (let j = 1; j <= N; j++) {
let [fail, challenge] = [challengePeople[j] - passPeople[j], challengePeople[j]]
failRate[j] = (fail / challenge)
}
let result = [] = Object.entries(failRate).sort((a, b) => b[1] - a[1]).map(v => Number(v[0]))
console.log(result)
}
๊ทธ๋ฆฌ๊ณ ๋ฑ ํ๋์ ์ผ์ด์ค์์ ํต๊ณผ๋ฅผ ๋ชปํ๋๋ฐ, ์ฝ๋๊ฐ ๋ณต์กํด์ ์ฐพ์๋ผ ์๋๊ฐ ์๋ฌ๋ค.
์คํจ์จ์ด ์ ์ฉ๋๋ ํจํด์ด ๋ณด์ด๋ฉด ์์ธ๋ก ์์ฒญ ๊ฐ๋จํ๊ฒ ์ค์ผ ์ ์๋ ๋ฌธ์ ์๋ค.
stage ์คํจ์จ = ํด๋น satage ์ ๋จธ๋ฌด๋ฅด๋ ์ฌ๋์ ์ / ์ด์ ๋จ๊ณ๋ฅผ ํต๊ณผํ ์ฌ๋์ ์(=๋์ ํ๋ ์ฌ๋ ์ - ์คํจํ ์ฌ๋ ์)
function solution(N, stages) {
let challengeCount = stages.length;
let failRate = [];
let failCount = 0;
for (let i = 1; i <= N; i++) {
let successCount = stages.filter(v => v > i).length
challengeCount -= failCount;
failCount = challengeCount - successCount;
failRate.push([i, failCount / challengeCount])
}
return failRate.sort((a, b) => b[1] - a[1]).map(v => v[0])
}
filter ๋ก ์ฑ๊ณตํ ์ฌ๋์ ์๋ฅผ ๊ฐ๋ ค๋ธ๋ค. value ๋ณด๋ค ๋์ ์๋ผ๋ฉด ๊ทธ ์ ๋ ๋ฒจ์ ํต๊ณผํ ๊ฒ์ด๋๊น!
๊ทธ๋ฆฌ๊ณ ๋์ ํ ์ฌ๋์ ์๋ฅผ challengeCount ๋ณ์์ ๋ด๋๋ค.
์ฒ์์ ์ ์ฒด ์ธ์์ด๋, stages ์ length ์ ๋์ผํ์ง๋ง,
๋ค์ ๋จ๊ณ๋ก ๋์ด๊ฐ ๋ ์คํจํ ์ฌ๋์ ์๋ฅผ ์ ์ธํ๋ค.
stage ๋ฒํธ์ธ i ์ ์คํจ์จ์ failRate ๋ฐฐ์ด์ ๋ฃ๋๋ค.
๊ทธ๋ผ 1๋ฒ ์์ ์ธ ๊ฒฝ์ฐ์
์ด๋ ๊ฒ ๋ธ.
index 1์ธ ์คํจ์จ๋ก sort ๋ฅผ ๋๋ฆฐ๋ค.
stage ์ ๋ฒํธ๋ง ๋ค์ด์๋ ๋ฐฐ์ด์ return ํ๋ฉด ๋๋, Map ์ผ๋ก [0] ๋ง ๋ด์์ค๋ค.
![](https://t1.daumcdn.net/keditor/emoticon/friends1/large/002.gif)
์ ์ถ ๊ฒฐ๊ณผ >> ์ฟ์ฟ ํต๊ณผํ๋์~~
'ํ์ ๊ณต๋ถ > ๐ซง ์๊ณ ๋ฆฌ์ฆ ๊ณต๋ถ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์๊ณ ๋ฆฌ์ฆ || ํ๋ก๊ทธ๋๋จธ์ค] [1์ฐจ] ๋คํธ ๊ฒ์ (0) | 2023.07.06 |
---|---|
[์๊ณ ๋ฆฌ์ฆ || ํ๋ก๊ทธ๋๋จธ์ค] ๋ง์น ํ๊ธฐ (0) | 2023.07.04 |
[์๊ณ ๋ฆฌ์ฆ || ํ๋ก๊ทธ๋๋จธ์ค] ์นด๋ ๋ญ์น (0) | 2023.06.28 |
[์๊ณ ๋ฆฌ์ฆ || ํ๋ก๊ทธ๋๋จธ์ค] ๋ ์์ ํฉ - BigInt ๊ณ์ฐ (0) | 2023.06.27 |
[์๊ณ ๋ฆฌ์ฆ || ํ๋ก๊ทธ๋๋จธ์ค] ๐์์ ์ฐพ๊ธฐ (0) | 2023.06.26 |