ํ๋ก๊ทธ๋๋จธ์ค ์ฝ๋ฉํ ์คํธ ์ฐ์ต์์ ํ์ธํ ์ ์๋ ์ถ์ต ์ ์ ๋ฌธ์ ์ ๋๋ค. ์ง๋ ๋ฌ๋ฆฌ๊ธฐ ๊ฒฝ์ฃผ์์ ์๋ก ๋ฐฐ์ด hash๋ฅผ ๋ค์ ์ฌ์ฉํ์ฌ ํฌ์คํ ํฉ๋๋ค!
๋ฌธ์
์ฌ์ง๋ค์ ๋ณด๋ฉฐ ์ถ์ต์ ์ ์ด ์๋ ๋ฃจ๋ ์ฌ์ง๋ณ๋ก ์ถ์ต ์ ์๋ฅผ ๋งค๊ธธ๋ ค๊ณ ํฉ๋๋ค. ์ฌ์ง ์์ ๋์ค๋ ์ธ๋ฌผ์ ๊ทธ๋ฆฌ์ ์ ์๋ฅผ ๋ชจ๋ ํฉ์ฐํ ๊ฐ์ด ํด๋น ์ฌ์ง์ ์ถ์ต ์ ์๊ฐ ๋ฉ๋๋ค. ์๋ฅผ ๋ค์ด ์ฌ์ง ์ ์ธ๋ฌผ์ ์ด๋ฆ์ด ["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 ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
ํ์ด
์ด๋ฆ์ด ๋ด๊ธด name๊ณผ ๊ทธ๋ฆฌ์ ์ ์๋ฅผ ๋ด์ yearning์ ํฉ์ณ ํธํ๊ฒ ์ธ๋ฑ์ฑ ํ๊ธฐ ์ํ์ฌ Map์ set ํด์ค๋๋ค. ์ดํ ๋ฐ๋ณต๋ฌธ์ ํตํด get ํด์ค๋ ๋ฐฉ์์ผ๋ก ์ฝ๋๋ฅผ ์์ฑํ๋๋ฐ, ์ด๋ฒ ๋ฌธ์ ๋ ํต๊ณผํ์ง๋ง ์๊ฐ ๋ณต์ก๋๋ฅผ ๋ ๋ฎ์ถ ๋ฐฉ๋ฒ์ ์๋์ง ๊ณ ๋ฏผํด์ผ๊ฒ ์ต๋๋ค..
function solution(name, yearning, photo) {
var answer = [];
const hash = new Map();
name.forEach((val, i) => {
hash.set(val, yearning[i]);
});
for (val of photo) {
let sum = 0;
for (ele of val) {
const temp = hash.get(ele);
if (temp) {
sum += temp;
}
}
answer.push(sum)
}
return answer;
}
'๐ค Algorithm > ํ๋ก๊ทธ๋๋จธ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ๋ก๊ทธ๋๋จธ์ค] ๋ฌ๋ฆฌ๊ธฐ ๊ฒฝ์ฃผ (Javascript) (0) | 2023.05.08 |
---|