๐ ๋ฌธ์
์ฌ์ง๋ค์ ๋ณด๋ฉฐ ์ถ์ต์ ์ ์ด ์๋ ๋ฃจ๋ ์ฌ์ง๋ณ๋ก ์ถ์ต ์ ์๋ฅผ ๋งค๊ธธ๋ ค๊ณ ํฉ๋๋ค. ์ฌ์ง ์์ ๋์ค๋ ์ธ๋ฌผ์ ๊ทธ๋ฆฌ์ ์ ์๋ฅผ ๋ชจ๋ ํฉ์ฐํ ๊ฐ์ด ํด๋น ์ฌ์ง์ ์ถ์ต ์ ์๊ฐ ๋ฉ๋๋ค. ์๋ฅผ ๋ค์ด ์ฌ์ง ์ ์ธ๋ฌผ์ ์ด๋ฆ์ด ["may", "kein", "kain"]์ด๊ณ ๊ฐ ์ธ๋ฌผ์ ๊ทธ๋ฆฌ์ ์ ์๊ฐ [5์ , 10์ , 1์ ]์ผ ๋ ํด๋น ์ฌ์ง์ ์ถ์ต ์ ์๋ 16(5 + 10 + 1)์ ์ด ๋ฉ๋๋ค. ๋ค๋ฅธ ์ฌ์ง ์ ์ธ๋ฌผ์ ์ด๋ฆ์ด ["kali", "mari", "don", "tony"]์ด๊ณ ["kali", "mari", "don"]์ ๊ทธ๋ฆฌ์ ์ ์๊ฐ ๊ฐ๊ฐ [11์ , 1์ , 55์ ]]์ด๊ณ , "tony"๋ ๊ทธ๋ฆฌ์ ์ ์๊ฐ ์์ ๋, ์ด ์ฌ์ง์ ์ถ์ต ์ ์๋ 3๋ช
์ ๊ทธ๋ฆฌ์ ์ ์๋ฅผ ํฉํ 67(11 + 1 + 55)์ ์
๋๋ค.
๊ทธ๋ฆฌ์ํ๋ ์ฌ๋์ ์ด๋ฆ์ ๋ด์ ๋ฌธ์์ด ๋ฐฐ์ด name, ๊ฐ ์ฌ๋๋ณ ๊ทธ๋ฆฌ์ ์ ์๋ฅผ ๋ด์ ์ ์ ๋ฐฐ์ด yearning, ๊ฐ ์ฌ์ง์ ์ฐํ ์ธ๋ฌผ์ ์ด๋ฆ์ ๋ด์ ์ด์ฐจ์ ๋ฌธ์์ด ๋ฐฐ์ด photo๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, ์ฌ์ง๋ค์ ์ถ์ต ์ ์๋ฅผ photo์ ์ฃผ์ด์ง ์์๋๋ก ๋ฐฐ์ด์ ๋ด์ returnํ๋ solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
์ ํ์ฌํญ
- 3 ≤ name์ ๊ธธ์ด = yearning์ ๊ธธ์ด≤ 100
- 3 ≤ name์ ์์์ ๊ธธ์ด ≤ 7
- name์ ์์๋ค์ ์ํ๋ฒณ ์๋ฌธ์๋ก๋ง ์ด๋ฃจ์ด์ ธ ์์ต๋๋ค.
- name์๋ ์ค๋ณต๋ ๊ฐ์ด ๋ค์ด๊ฐ์ง ์์ต๋๋ค.
- 1 ≤ yearning[i] ≤ 100
- yearning[i]๋ i๋ฒ์งธ ์ฌ๋์ ๊ทธ๋ฆฌ์ ์ ์์ ๋๋ค.
- 3 ≤ photo์ ๊ธธ์ด ≤ 100
- 1 ≤ photo[i]์ ๊ธธ์ด ≤ 100
- 3 ≤ photo[i]์ ์์(๋ฌธ์์ด)์ ๊ธธ์ด ≤ 7
- photo[i]์ ์์๋ค์ ์ํ๋ฒณ ์๋ฌธ์๋ก๋ง ์ด๋ฃจ์ด์ ธ ์์ต๋๋ค.
- photo[i]์ ์์๋ค์ ์ค๋ณต๋ ๊ฐ์ด ๋ค์ด๊ฐ์ง ์์ต๋๋ค.
์ ์ถ๋ ฅ ์
["may", "kein", "kain", "radi"] | [5, 10, 1, 3] | [["may", "kein", "kain", "radi"],["may", "kein", "brin", "deny"], ["kon", "kain", "may", "coni"]] | [19, 15, 6] |
["kali", "mari", "don"] | [11, 1, 55] | [["kali", "mari", "don"], ["pony", "tom", "teddy"], ["con", "mona", "don"]] | [67, 0, 55] |
["may", "kein", "kain", "radi"] | [5, 10, 1, 3] | [["may"],["kein", "deny", "may"], ["kon", "coni"]] | [5, 15, 0] |
โ๏ธ ํ์ด
์ ํ์ ์ธ hash๋ฌธ์ ์๋ค๊ณ ์๊ฐํ๋ค.
๊ฐ์ ๊ธธ์ด์ ๋ ๊ฐ์ ๋ฐฐ์ด๋ก ์ฃผ์ด์ง๊ธฐ ๋๋ฌธ์ ๋ฐฐ์ด์ ๊ธธ์ด๋งํผ ๋ฐ๋ณตํ๋ฉด์ ๊ฐ์ฒด์ ์ด๋ฆ์ ํค๋ก ์ ์๋ฅผ ๊ฐ์ผ๋ก ์ ์ฅํ๋ค. ์ดํ ๊ทธ ๋ค์ photo ๋ฐฐ์ด์ ๋๋ฉด์ ํด๋น ์ฌ์ง(photo์ ์์)์ ๋๋ฉด์ name์ด ๊ฐ์ฒด์ ์๋์ง ํ์ธํ๊ณ ์๋ค๋ฉด ์ ์๋ฅผ ๋ํด์ฃผ๊ณ ์๋๋ฉด ๊ทธ๋๋ก ํ์ฌ ์ ์๋ฅผ ๋ฐํํ๋ฉฐ ๋ํ๋ Array.reduce๋ฅผ ํตํด ํฉ์ฐ์ ์๋ฅผ answer ๋ฐฐ์ด์ ๋ฃ์ด์คฌ๋ค.
โจ๏ธ ์ฝ๋
function solution(name, yearning, photo) {
var answer = [];
const scores = {};
for (let i = 0; i < name.length; i++) scores[name[i]] = yearning[i];
for (const p of photo) {
let score = p.reduce((s, name) => (scores[name] ? s + scores[name] : s), 0);
answer.push(score);
}
return answer;
}
'Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Algorithm] ๋ช ์์ ์ ๋น(1) (0) | 2023.04.27 |
---|---|
[Algorithm] ์นด์ดํธ๋ค์ด (0) | 2023.04.26 |
[Algorithm] ์๋ฌผ์ ์ ์ด์ (0) | 2023.04.23 |
[Algorithm] ์นด๋ ๋ญ์น (0) | 2023.04.23 |
[Algorithm] ์ซ์ ์ง๊ฟ (0) | 2023.04.23 |