๋ฐฑ์ค ๋ฌธ์ ๋ฅผ ๋จ๊ณ๋ณ๋ก ํ์ด๊ฐ๋ค ๋ณด๋ฉด ์งํฉ๊ณผ ๋งต์์ set๊ณผ map์ ์ด์ฉํด์ ์๊ณ ๋ฆฌ์ฆ์ ํ์ด์ผ ํ๋ค.
๋ฐฐ์ด๋ก ํ์ ์์ง๋ง ์๊ฐ์ด ์ด๊ณผ๋๋ค.
๋ค๋ฅธ ์๋ฃ๊ตฌ์กฐ๊ฐ ํ์ํ๋ค!!!
๋ค๋ฅธ ์๋ฃ๊ตฌ์กฐ๋ฅผ ๊ณต๋ถํด๋ณด์...!!!!
์ ๋ฒ์๋ set์ ๋ํด์ ์ ๋ฆฌํด๋ดค์ผ๋ map์ ๋ํด์ ์ ๋ฆฌํด๋ณด๊ฒ ๋ค.
map๊ณผ set์ ์ ์ธ๊น ์์๋ณด๋
ํ์ค์ธ๊ณ๋ฅผ ๋ฐ์ํ๊ธฐ ์ํด์๋ ๊ฐ์ฒด์ ๋ฐฐ์ด๋ง์ผ๋ก๋ ์ญ๋ถ์กฑ์ด์๋ค.
๊ทธ๋ฌ๋ฏ๋ก ์๋ก์ด ์๋ฃ๊ตฌ์กฐ์ธ Map๊ณผ Set์ ์ด์ฉํ๊ฒ ๋๋ค๊ณ ํ๋ค.
1. Map ๊ฐ๋
- key์ ๊ฐ ์๋ data๋ฅผ ์ ์ฅ โก๏ธ ๊ฐ์ฒด์ ์ ์ฌ
- key์ ๋ค์ํ ์๋ฃํ(boolean, number, string, object)์ ํ์ฉ โก๏ธ ๊ฐ์ฒด์ ๋ค๋ฅธ ์
2. ์ฃผ์ ๋ฉ์๋(Method)
2-1. ์ฃผ์ ๋ฉ์๋
- new Map() : Map์ ์์ฑ
- map.set(key, value) : key๋ฅผ ์ด์ฉํด value๋ฅผ ์ ์ฅ
- map.get(key) – key์ ํด๋นํ๋ value๋ฅผ ๋ฐํ, key๊ฐ ์กด์ฌํ์ง ์์ผ๋ฉด undefined๋ฅผ ๋ฐํ
- map.has(key) – key๊ฐ ์กด์ฌํ๋ฉด true, ์กด์ฌํ์ง ์์ผ๋ฉด false๋ฅผ ๋ฐํ
- map.delete(key) – key์ ํด๋นํ๋ ๊ฐ์ ์ญ์
- map.clear() – ๋งต ์์ ๋ชจ๋ ์์๋ฅผ ์ ๊ฑฐ
- map.size – ์์์ ๊ฐ์๋ฅผ ๋ฐํ
2-2. ์ฃผ์ ๋ฉ์๋ ์์
let map = new Map(); // ๋งต ์์ฑ
map.set(1, 'number'); // ๋งต์ key, value ์ ์ฅ - num type
map.set('1', 'string'); // string type
map.set(true, 'boolean'); // boolean type
console.log(map); // Map(3) { 1 => 'number', '1' => 'string', true => 'boolean' }
console.log(map.size); // 3 - ๋งต์์ ์์์ ๊ฐ์
TIP โผ๏ธ ๋งต์ ๊ฐ์ฒด์ ๋ค๋ฅด๊ฒ ํค๋ฅผ ๋ฌธ์ํ์ผ๋ก ๋ณํํ์ง ์๋๋ค, ํค์ ์๋ฃํ์ ์ ์ฝ์ด ์๋ค.
Object๋ฅผ Key๋ก ์ฌ์ฉํ๋ ์์
let bob = { name: 'bob' };
let consummers = new Map();
consummers.set(bob, 1); // object๋ฅผ key๋ก ์ฌ์ฉํ ์ ์์
console.log(consummers.get(bob)); // 1
console.log(consummers); // Map(1) { { name: 'bob' } => 1 }
Map์์๋ object๋ฅผ key๋ก ์ฌ์ฉํ ์ ์์ง๋ง object๋ object๋ฅผ key๋ก ์ฌ์ฉํ ์ ์๋ค.
์์ง map์ ์๊ณ ๋ฆฌ์ฆ ํธ๋๋ฐ๋ง ํ์ฉํ๊ณ ์๋ค.
์ค์ ์ ์ผ๋ก ์ด๋ค ํ๋ก๊ทธ๋จ์ ๋ง๋ค ๋ Map์ ์ด๋ป๊ฒ ํ์ฉ์ด ๋๋์ง
์๋ฐ์คํฌ๋ฆฝํธ๋ ํ์ ์ ํฝํฝ ๋ฐ๊พธ๋๋ฐ ํ์ ์คํฌ๋ฆฝํธ๋ฅผ ํ์ฉํด์ผ
๋์ค์ ์ฌ๋ฌ ๊ฐ์ง ์ผ์ ๋๋นํ ์ ์์ง ์๋์ง... ํผ์ ์๊ฐ ์ค์ด๋ค.
์ด๋๋ค์ ์ด๋ป๊ฒ ํ๋ฉด ํ์ฉํ ์ ์์์ง ์ฐจ์ฐจ ์๊ฐํด๋ณด์!
map์ ์ด์ฉํ ๊ฐ๋จ ์๊ณ ๋ฆฌ์ฆ ํ์ด๋ฅผ ๋ณด๊ณ ์ถ๋ค๋ฉด ์๋ํฌ์คํ ์ ํด๋ฆญ
[Algorithms/Baekjoon] - [JS] ๋ฐฑ์ค 10816๋ฒ : ์ซ์ ์นด๋ 2
Set์ ๊ดํ ๊ธฐ๋ณธ์ ์ธ ์ ๋ณด๋ฅผ ์๊ณ ์ถ๋ค๋ฉด ์๋ ํฌ์คํ ์ ํด๋ฆญ
[Front-End/JavaScript] - [์๋ฐ์คํฌ๋ฆฝํธ ๊ธฐ๋ณธ] ์๋ฐ์คํฌ๋ฆฝํธ ์๋ฃํ Set ๊ฐ๋ ์ ๋ฆฌ
Reference (์ฐธ์กฐ)
https://ko.javascript.info/map-set
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map