๐ ๋ฌธ์
์ํผ ๊ฒ์ ๊ฐ๋ฐ์ ์ค๋ ๋ฆฌ๋ ํฐ ๊ณ ๋ฏผ์ ๋น ์ก๋ค. ๊ทธ๋
๊ฐ ๋ง๋ ํ๋์ฆ ์ค์ฒ์ฑ์ด ๋์ฑ๊ณต์ ๊ฑฐ๋์ง๋ง, ์์ฆ ์ ๊ท ์ฌ์ฉ์์ ์๊ฐ ๊ธ๊ฐํ ๊ฒ์ด๋ค. ์์ธ์ ์ ๊ท ์ฌ์ฉ์์ ๊ธฐ์กด ์ฌ์ฉ์ ์ฌ์ด์ ์คํ
์ด์ง ์ฐจ์ด๊ฐ ๋๋ฌด ํฐ ๊ฒ์ด ๋ฌธ์ ์๋ค.
์ด ๋ฌธ์ ๋ฅผ ์ด๋ป๊ฒ ํ ๊น ๊ณ ๋ฏผ ํ ๊ทธ๋
๋ ๋์ ์ผ๋ก ๊ฒ์ ์๊ฐ์ ๋๋ ค์ ๋์ด๋๋ฅผ ์กฐ์ ํ๊ธฐ๋ก ํ๋ค. ์ญ์ ์ํผ ๊ฐ๋ฐ์๋ผ ๋๋ถ๋ถ์ ๋ก์ง์ ์ฝ๊ฒ ๊ตฌํํ์ง๋ง, ์คํจ์จ์ ๊ตฌํ๋ ๋ถ๋ถ์์ ์๊ธฐ์ ๋น ์ง๊ณ ๋ง์๋ค. ์ค๋ ๋ฆฌ๋ฅผ ์ํด ์คํจ์จ์ ๊ตฌํ๋ ์ฝ๋๋ฅผ ์์ฑํ๋ผ.
์คํจ์จ์ ๋ค์๊ณผ ๊ฐ์ด ์ ์ํ๋ค.
์คํ
์ด์ง์ ๋๋ฌํ์ผ๋ ์์ง ํด๋ฆฌ์ดํ์ง ๋ชปํ ํ๋ ์ด์ด์ ์ / ์คํ
์ด์ง์ ๋๋ฌํ ํ๋ ์ด์ด ์
์ ์ฒด ์คํ
์ด์ง์ ๊ฐ์ N, ๊ฒ์์ ์ด์ฉํ๋ ์ฌ์ฉ์๊ฐ ํ์ฌ ๋ฉ์ถฐ์๋ ์คํ
์ด์ง์ ๋ฒํธ๊ฐ ๋ด๊ธด ๋ฐฐ์ด stages๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, ์คํจ์จ์ด ๋์ ์คํ
์ด์ง๋ถํฐ ๋ด๋ฆผ์ฐจ์์ผ๋ก ์คํ
์ด์ง์ ๋ฒํธ๊ฐ ๋ด๊ฒจ์๋ ๋ฐฐ์ด์ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํ๋ผ.
๐ ์ ํ์ฌํญ
- ์คํ ์ด์ง์ ๊ฐ์ N์ 1 ์ด์ 500 ์ดํ์ ์์ฐ์์ด๋ค.
- stages์ ๊ธธ์ด๋ 1 ์ด์ 200,000 ์ดํ์ด๋ค.
- stages์๋ 1 ์ด์ N + 1 ์ดํ์ ์์ฐ์๊ฐ ๋ด๊ฒจ์๋ค.
- ๊ฐ ์์ฐ์๋ ์ฌ์ฉ์๊ฐ ํ์ฌ ๋์ ์ค์ธ ์คํ ์ด์ง์ ๋ฒํธ๋ฅผ ๋ํ๋ธ๋ค.
- ๋จ, N + 1 ์ ๋ง์ง๋ง ์คํ ์ด์ง(N ๋ฒ์งธ ์คํ ์ด์ง) ๊น์ง ํด๋ฆฌ์ด ํ ์ฌ์ฉ์๋ฅผ ๋ํ๋ธ๋ค.
- ๋ง์ฝ ์คํจ์จ์ด ๊ฐ์ ์คํ ์ด์ง๊ฐ ์๋ค๋ฉด ์์ ๋ฒํธ์ ์คํ ์ด์ง๊ฐ ๋จผ์ ์ค๋๋ก ํ๋ฉด ๋๋ค.
- ์คํ ์ด์ง์ ๋๋ฌํ ์ ์ ๊ฐ ์๋ ๊ฒฝ์ฐ ํด๋น ์คํ ์ด์ง์ ์คํจ์จ์ 0 ์ผ๋ก ์ ์ํ๋ค.
๐ ์ ์ถ๋ ฅ ์
N | Stages | Result |
---|---|---|
5 | [2, 1, 2, 6, 2, 4, 3, 3] | [3, 4, 2, 1, 5] |
4 | [4, 4, 4, 4, 4] | [4, 1, 2, 3] |
๐ ์ ์ถ๋ ฅ ์ ์ค๋ช
์
์ถ๋ ฅ ์ #1
1๋ฒ ์คํ
์ด์ง์๋ ์ด 8๋ช
์ ์ฌ์ฉ์๊ฐ ๋์ ํ์ผ๋ฉฐ, ์ด ์ค 1๋ช
์ ์ฌ์ฉ์๊ฐ ์์ง ํด๋ฆฌ์ดํ์ง ๋ชปํ๋ค. ๋ฐ๋ผ์ 1๋ฒ ์คํ
์ด์ง์ ์คํจ์จ์ ๋ค์๊ณผ ๊ฐ๋ค.
1 ๋ฒ ์คํ
์ด์ง ์คํจ์จ : 1/8
2๋ฒ ์คํ
์ด์ง์๋ ์ด 7๋ช
์ ์ฌ์ฉ์๊ฐ ๋์ ํ์ผ๋ฉฐ, ์ด ์ค 3๋ช
์ ์ฌ์ฉ์๊ฐ ์์ง ํด๋ฆฌ์ดํ์ง ๋ชปํ๋ค. ๋ฐ๋ผ์ 2๋ฒ ์คํ
์ด์ง์ ์คํจ์จ์ ๋ค์๊ณผ ๊ฐ๋ค.
2 ๋ฒ ์คํ
์ด์ง ์คํจ์จ : 3/7
๋ง์ฐฌ๊ฐ์ง๋ก ๋๋จธ์ง ์คํ
์ด์ง์ ์คํจ์จ์ ๋ค์๊ณผ ๊ฐ๋ค.
3 ๋ฒ ์คํ
์ด์ง ์คํจ์จ : 2/4
4๋ฒ ์คํ
์ด์ง ์คํจ์จ : 1/2
5๋ฒ ์คํ
์ด์ง ์คํจ์จ : 0/1
๊ฐ ์คํ
์ด์ง์ ๋ฒํธ๋ฅผ ์คํจ์จ์ ๋ด๋ฆผ์ฐจ์์ผ๋ก ์ ๋ ฌํ๋ฉด ๋ค์๊ณผ ๊ฐ๋ค.
[3,4,2,1,5]
์
์ถ๋ ฅ ์ #2
๋ชจ๋ ์ฌ์ฉ์๊ฐ ๋ง์ง๋ง ์คํ
์ด์ง์ ์์ผ๋ฏ๋ก 4๋ฒ ์คํ
์ด์ง์ ์คํจ์จ์ 1์ด๋ฉฐ ๋๋จธ์ง ์คํ
์ด์ง์ ์คํจ์จ์ 0์ด๋ค.
[4,1,2,3]
๐ง ํ์ด
function solution(N, stages) {
let answer = {};
for (let i = 1; i <= N; i++) {
let deno = stages.filter((e) => e === i).length;
let nume = stages.filter((e) => e >= i).length;
if (nume === 0) {
answer[i] = 0;
} else {
answer[i] = deno / nume;
}
}
let sortedArray = Object.keys(answer);
sortedArray.sort((a, b) => answer[b] - answer[a] || a - b);
return sortedArray.map(item => parseInt(item));
}
๐ก ์๊ฒ ๋ ์
- Object.keys(obj)๋ฅผ ํตํด ๊ฐ์ฒด์ ํค๋ง ๋ด์ ๋ฐฐ์ด์ ๋ฐํํ ์ ์๋ค.
- ์๋งคํ์ผ๋ก Object.values(obj)๋ ๊ฐ์ฒด์ ๊ฐ๋ง, Object.entries(obj)๋ [ํค, ๊ฐ] ์์ ๋ด์ ๋ฐฐ์ด์ ๋ฐํํ๋ค.
- answer[b] - answer[a]๋ ๋ด๋ฆผ์ฐจ์ ์ ๋ ฌ์ ์ํ ๋น๊ต์์ธ๋ฐ, ํด๋น ๊ฐ์ด 0์ด ๋๋ฉด, ์ด๋ false๋ฅผ ๋ปํ๊ฒ ๋๋ค.
- ๋ฐ๋ผ์ ๋ ผ๋ฆฌ ์ฐ์ฐ์ ||์์ ๊ฑฐ์ง์ผ๋ก ๋์ด๊ฐ, ๊ทธ ๋ค์ ์์ธ a - b๋ฅผ ๋น๊ตํ๊ฒ ๋๋๋ฐ, ์ด๋ฅผ ํตํด ์คํจ์จ์ ๋ฐ๋ฅธ ๋ด๋ฆผ์ฐจ์ ์ ๋ ฌ๊ณผ, ์คํจ์จ์ด ๊ฐ์ ๋๋ ์ค๋ฆ์ฐจ์ ์ ๋ ฌ์ ์ ์งํ ์ ์๊ฒ ๋๋ค.
- ๊ทธ๋ ์ง๋ง ์ด๋ฏธ ์ค๋ฆ์ฐจ์ ์ ๋ ฌ๋ก ๋์ด ์๊ธฐ ๋๋ฌธ์, ํด๋น ๋ถ๋ถ์ ๋ถํ์ํ๋ค๊ณ ํ ์ ์๊ธด ํ๋ค.
- parseInt() ํจ์๋ Number()ํจ์๋ฅผ ํตํด, ๋ฌธ์์ด์ ์ซ์, ํน์ ์ ์ํ์ผ๋ก ํ๋ณํํ ์ ์๋ค.
'๐งฉ Algorithm > ๐ง JavaScript' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ๋ก๊ทธ๋๋จธ์ค] ํคํจ๋ ๋๋ฅด๊ธฐ (์นด์นด์ค ๋ฌธ์ , LV1) (1) | 2024.06.02 |
---|---|
[ํ๋ก๊ทธ๋๋จธ์ค] ์ฑ๊ฒฉ ์ ํ ๊ฒ์ฌํ๊ธฐ (์นด์นด์ค ๋ฌธ์ , LV1) (1) | 2024.06.01 |
[ํ๋ก๊ทธ๋๋จธ์ค] ์ซ์ ๋ฌธ์์ด๊ณผ ์๋จ์ด (์นด์นด์ค ๋ฌธ์ , LV1) (0) | 2024.05.29 |
[ํ๋ก๊ทธ๋๋จธ์ค] N์ง์ ๊ฒ์ (์นด์นด์ค ๋ฌธ์ , LV2) (0) | 2024.05.28 |
[ํ๋ก๊ทธ๋๋จธ์ค] ๋ค์์ ์ฌ ์ซ์ (0) | 2023.04.20 |