๋ฌธ์ ์ค๋ช
์ฌ์ง๋ค์ ๋ณด๋ฉฐ ์ถ์ต์ ์ ์ด ์๋ ๋ฃจ๋ ์ฌ์ง๋ณ๋ก ์ถ์ต ์ ์๋ฅผ ๋งค๊ธฐ๋ ค๊ณ ํฉ๋๋ค. ์ฌ์ง ์์ ๋์ค๋ ์ธ๋ฌผ์ ๊ทธ๋ฆฌ์ ์ ์๋ฅผ ๋ชจ๋ ํฉ์ฐํ ๊ฐ์ด ํด๋น ์ฌ์ง์ ์ถ์ต ์ ์๊ฐ ๋ฉ๋๋ค. ์๋ฅผ ๋ค์ด ์ฌ์ง ์ ์ธ๋ฌผ์ ์ด๋ฆ์ด `["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 ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
์ ์ถ๋ ฅ ์
["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] |
๐Map
Map ๊ฐ์ฒด๋ ํค์ ๊ฐ์ ์์ผ๋ก ์ด๋ฃจ์ด์ง ์ปฌ๋ ์ ์ด๋ค. ํค๊ฐ์ ์ค๋ณต์ ํ์ฉํ์ง ์์ผ๋ฉฐ, ๊ฐ์ ์ค๋ณต์ ํ์ฉํ๋ค. ๊ฐ์ฒด์ ์ ์ฌํ์ง๋ง ๋ค์๊ณผ ๊ฐ์ ์ฐจ์ด๊ฐ ์๋ค.
๊ตฌ๋ถ | ๊ฐ์ฒด | Map |
ํค๋ก ์ฌ์ฉํ ์ ์๋ ๊ฐ | ๋ฌธ์์ด, ์ฌ๋ณผ | ๊ฐ์ฒด๋ฅผ ํฌํจํ ๋ชจ๋ ๊ฐ |
์ดํฐ๋ฌ๋ธ | X | O |
์์ ๊ฐ์ ํ์ธ | Object.keys(obj).length | map.size |
์์ฑ
Map ๊ฐ์ฒด๋ Map ์์ฑ์ ํจ์๋ก ์์ฑํ๋ค. ์ธ์๋ก ์ ๋ฌ๋๋ ๊ฐ์ด ์์ผ๋ฉด ๋น Map ๊ฐ์ฒด๊ฐ ์์ฑ๋๋ค.
Map์ ์์ฑ์ ํจ์์ ์ธ์๋ก ์ ๋ฌํ ์ดํฐ๋ฌ๋ธ์ ์ค๋ณต๋ ํค๋ฅผ ๊ฐ๋ ์์๊ฐ ์กด์ฌํ๋ฉด ๊ฐ์ ๋ฎ์ด์ด๋ค.
const map = new Map();
์ฝ์
`set()`
์ฒซ๋ฒ์งธ ์ธ์๋ก ํค๊ฐ, ๋๋ฒ์งธ ์ธ์๋ก ์์๋ฅผ ์ ๋ฌํ๋ค.
์ทจ๋
`get()`
์ธ์๋ก ํค๊ฐ์ ์ ๋ฌํ๋ฉด ์์๋ฅผ ๋ฐํ ๋ฐ์ ์ ์๋ค. ์์๊ฐ ์กด์ฌํ์ง ์์ผ๋ฉด `undefined`๋ฅผ ๋ฐํํ๋ค.
ํ์ธ
`has()`
์ ๋ฌ๋ฐ์ ์ธ์๋ฅผ ํค๊ฐ์ผ๋ก ํ๋ ์์๊ฐ ์กด์ฌํ๋์ง ์๋์ง ์ฌ๋ถ๋ฅผ ๋ฐํํ๋ค.
์ญ์
`delete()`
์ธ์๋ก ํค๊ฐ์ ์ ๋ฌ๋ฐ์ ์ญ์ ํ๋ค. ์กด์ฌํ์ง ์๋ ํค๋ก ์ญ์ ๋ฅผ ์๋ํ๋ฉด ์๋ฌ ์์ด ๋ฌด์ํ๋ค.
`clear()`
Map ๊ฐ์ฒด ๋ด ๋ชจ๋ ์์๋ฅผ ์ผ๊ด ์ญ์ ํ๋ค. ๋ฐํ ๊ฐ์ `undefined`
๐ํ์ด
1. ์ด๋ฆ ๋ฐฐ์ด `name`๊ณผ ๊ทธ๋ฆฌ์ ์ ์ ๋ฐฐ์ด `yearning`์ด ๋๋ํ ์ฃผ์ด์ง๊ณ ์์ผ๋ฏ๋ก Map ๊ฐ์ฒด์ ํค, ๊ฐ์ ์์ผ๋ก ์ฝ์ ํ๋ค.
2. ์ฌ์ง ๋ฐฐ์ด `photo`๋ฅผ ์ํํ๋ฉฐ ํ์ ๊ฐ ์์๋ฅผ ํค๊ฐ์ผ๋ก Map ๊ฐ์ฒด์์ ์์๋ฅผ ์ทจ๋ํ์ฌ ์ข ํฉ ์ ์๋ฅผ ๊ตฌํ๋ค.
3. `answer` ๋ฐฐ์ด์ ์ฝ์ ํ์ฌ ๋ฐํํ๋ค.
function solution(name, yearning, photo) {
var answer = [];
let missing = new Map();
for(i = 0; i < name.length; i++){
missing.set(name[i], yearning[i]);
}
photo.forEach( e => {
let temp = 0;
e.forEach( v => temp += missing.get(v) || 0 );
answer.push(temp);
} );
return answer;
}
'์ฝ๋ฉํ ์คํธ > ํ๋ก๊ทธ๋๋จธ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Lv.1] ์ซ์ ๋ฌธ์์ด๊ณผ ์๋จ์ด (0) | 2024.06.18 |
---|---|
[Lv.1] K๋ฒ์งธ ์ (0) | 2024.06.17 |
[Lv.2] ํ๋ ธ์ด์ ํ (1) | 2024.06.12 |
[Lv.1] ํฐ์ผ๋ชฌ (0) | 2024.01.08 |
[Lv.1] ์์ฃผํ์ง ๋ชปํ ์ ์ (0) | 2024.01.06 |