๐ ๋ฌธ์
์คํธ๋ฆฌ๋ฐ ์ฌ์ดํธ์์ ์ฅ๋ฅด ๋ณ๋ก ๊ฐ์ฅ ๋ง์ด ์ฌ์๋ ๋ ธ๋๋ฅผ ๋ ๊ฐ์ฉ ๋ชจ์ ๋ฒ ์คํธ ์จ๋ฒ์ ์ถ์ํ๋ ค ํฉ๋๋ค. ๋ ธ๋๋ ๊ณ ์ ๋ฒํธ๋ก ๊ตฌ๋ถํ๋ฉฐ, ๋ ธ๋๋ฅผ ์๋กํ๋ ๊ธฐ์ค์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- ์ํ ๋ ธ๋๊ฐ ๋ง์ด ์ฌ์๋ ์ฅ๋ฅด๋ฅผ ๋จผ์ ์๋กํฉ๋๋ค.
- ์ฅ๋ฅด ๋ด์์ ๋ง์ด ์ฌ์๋ ๋ ธ๋๋ฅผ ๋จผ์ ์๋กํฉ๋๋ค.
- ์ฅ๋ฅด ๋ด์์ ์ฌ์ ํ์๊ฐ ๊ฐ์ ๋ ธ๋ ์ค์์๋ ๊ณ ์ ๋ฒํธ๊ฐ ๋ฎ์ ๋ ธ๋๋ฅผ ๋จผ์ ์๋กํฉ๋๋ค.
๋ ธ๋์ ์ฅ๋ฅด๋ฅผ ๋ํ๋ด๋ ๋ฌธ์์ด ๋ฐฐ์ด genres์ ๋ ธ๋๋ณ ์ฌ์ ํ์๋ฅผ ๋ํ๋ด๋ ์ ์ ๋ฐฐ์ด plays๊ฐ ์ฃผ์ด์ง ๋, ๋ฒ ์คํธ ์จ๋ฒ์ ๋ค์ด๊ฐ ๋ ธ๋์ ๊ณ ์ ๋ฒํธ๋ฅผ ์์๋๋ก return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํ์ธ์.
์ ํ ์ฌํญ
- genres[i]๋ ๊ณ ์ ๋ฒํธ๊ฐ i์ธ ๋ ธ๋์ ์ฅ๋ฅด์ ๋๋ค.
- plays[i]๋ ๊ณ ์ ๋ฒํธ๊ฐ i์ธ ๋ ธ๋๊ฐ ์ฌ์๋ ํ์์ ๋๋ค.
- genres์ plays์ ๊ธธ์ด๋ ๊ฐ์ผ๋ฉฐ, ์ด๋ 1 ์ด์ 10,000 ์ดํ์ ๋๋ค.
- ์ฅ๋ฅด ์ข ๋ฅ๋ 100๊ฐ ๋ฏธ๋ง์ ๋๋ค.
- ์ฅ๋ฅด์ ์ํ ๊ณก์ด ํ๋๋ผ๋ฉด, ํ๋์ ๊ณก๋ง ์ ํํฉ๋๋ค.
- ๋ชจ๋ ์ฅ๋ฅด๋ ์ฌ์๋ ํ์๊ฐ ๋ค๋ฆ ๋๋ค.
์ ์ถ๋ ฅ ์
| ["classic", "pop", "classic", "classic", "pop"] | [500, 600, 150, 800, 2500] | [4, 1, 3, 0] |
โ๏ธ ํ์ด
๊ฐ์ฅ ๋ง์ด ์ฌ์๋ ์ฅ๋ฅด๋ฅผ ํ์ธํด์ผํ๊ณ , ๊ทธ ์ฅ๋ฅด ๋ด์์๋ ๊ฐ์ฅ ๋ง์ด ์ฌ์๋ ์์ ์ ๋ฒํธ๋ฅผ ์๊ณ ์์ด์ผ ํ๊ธฐ ๋๋ฌธ์ ๋ฐ๋ณต๋ฌธ์ผ๋ก ๋๋ฉด์ ๊ฐ์ฒด์ ์ ๋ณด๋ฅผ ์ ์ฅํ๊ณ ์ ๋ ฌํด์ฃผ๋ฉด ๋ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ๋ค.
๊ฐ์ฒด์ ๊ตฌ์กฐ๋ ๋ค์๊ณผ ๊ฐ์ด ์ก์๋ค.
{
์ฅ๋ฅด: { total: ์ฅ๋ฅด์ ์ด ์ฌ์ํ์, list: [ [์์
์ ๋ฒํธ, ์ฌ์ํ์] ...] },
}
์ด ์ ๋ณด๋ฅผ ํตํด ๊ฐ ์ฅ๋ฅด์ total์ ๊ธฐ์ค์ผ๋ก ์ ๋ ฌํด์ฃผ๊ณ , ๋ฐ๋ณต๋ฌธ์ ๋๋ฉด์ list์ ๋๋ฒ์งธ ๊ฐ์ธ ์ฌ์ํ์๋ก ๋ค์ ๋ด๋ฆผ์ฐจ์์ผ๋ก ์ ๋ ฌํ ๋ค ์์์๋ถํฐ 2๊ฐ์ ์์ ์ ์ ํํ๋ค.
โจ๏ธ ์ฝ๋
function solution(genres, plays) {
var answer = [];
const hash = {};
for (let i = 0; i < genres.length; i++) {
if (hash[genres[i]]) {
hash[genres[i]]['total'] += plays[i];
hash[genres[i]]['list'].push([i, plays[i]]);
} else {
hash[genres[i]] = { total: plays[i], list: [[i, plays[i]]] };
}
}
const hashArr = Object.entries(hash).sort((a, b) => b[1]['total'] - a[1]['total']);
for (const [genre, info] of hashArr) {
info['list'].sort((a, b) => b[1] - a[1]);
let cnt = 0;
for (const [num, play] of info['list']) {
answer.push(num);
cnt += 1;
if (cnt >= 2) break;
}
}
return answer;
}'Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| [Algorithm] ๋ถ๋๋ณต๊ท (0) | 2023.03.02 |
|---|---|
| [Algorithm] ์ต๊ณ ์ ์งํฉ (0) | 2023.03.01 |
| [Algorithm] ์ซ์ ๊ฒ์ (0) | 2023.02.27 |
| [Algorithm] ๋จ์์นด๋ฉ๋ผ (0) | 2023.02.26 |
| [Algorithm] ์ด์ค์ฐ์ ์์ ํ (0) | 2023.02.25 |