728x90
ํ๋ก๊ทธ๋๋จธ์ค
์ฝ๋ ์ค์ฌ์ ๊ฐ๋ฐ์ ์ฑ์ฉ. ์คํ ๊ธฐ๋ฐ์ ํฌ์ง์ ๋งค์นญ. ํ๋ก๊ทธ๋๋จธ์ค์ ๊ฐ๋ฐ์ ๋ง์ถคํ ํ๋กํ์ ๋ฑ๋กํ๊ณ , ๋์ ๊ธฐ์ ๊ถํฉ์ด ์ ๋ง๋ ๊ธฐ์ ๋ค์ ๋งค์นญ ๋ฐ์ผ์ธ์.
programmers.co.kr
์ด ๋ฌธ์ ๋ฅผ ํตํด Map์ ๋ํด ์กฐ๊ธ ์๊ฒ ๋์๋ค.
Map
- Map์ ํค์ ๊ฐ์ ์์ผ๋ก ์ด๋ฃจ์ด์ง ์ปฌ๋ ์ ์ด๋ค.
Map vs ๊ฐ์ฒด
Map | ๊ฐ์ฒด | |
ํค ์ ํ | Map์ ํค๋ ๋ชจ๋ ๊ฐ(ํจ์, ๊ฐ์ฒด ๋๋ ์์๊ฐ ํฌํจ)์ด ๋ ์ ์๋ค. | Object์ ํค๋ String ๋๋ Symbol์ด์ฌ์ผ ํ๋ค. |
์ํ | Map์ ์ํ๊ฐ๋ฅ(iterable)ํ๊ธฐ ๋๋ฌธ์ ์ด๋ฏ๋ก ์ง์ ๋ฐ๋ณตํ ์ ์๋ค. | Object๋ iteration protocol์ ๊ตฌํํ์ง ์๊ธฐ ๋๋ฌธ์ ๋ก ๊ฐ์ฒด๋ for...of๋ฌธ์ ์ฌ์ฉํ์ฌ ์ง์ ์ ์ผ๋ก ๋ฐ๋ณตํ ์ ์๋ค. |
์ฑ๋ฅ | ํค-๊ฐ ์์ ๋น๋ฒํ ์ถ๊ฐ ๋ฐ ์ ๊ฑฐ์ ๊ด๋ จ๋ ์ํฉ์์๋ ์ฑ๋ฅ์ด ์ข ๋ ์ข๋ค. | ํค-๊ฐ ์์ ๋น๋ฒํ ์ถ๊ฐ ๋ฐ ์ ๊ฑฐ์ ์ต์ ํ๋์ง ์๋ค. |
Map ๊ฐ์ฒด
์ดํฐ๋ฌ๋ธ์ ์ธ์๋ก ์ ๋ฌ๋ฐ์ ์์ฑํ๋ค.
const map1 = new Map([['key1', 'value1'], ['key2', 'value2']]);
console.log(map1); // Map(2) {"key1" => "value1", "key2" => "value2"}
const map2 = new Map([1, 2]); // TypeError: Iterator value 1 is not an entry object
์ค๋ณต๋ ํค๋ map ๊ฐ์ฒด์ ์์๋ก ์ ์ฅ๋์ง ์๋๋ค.
๋ด๊ฐ ์์ฑํ ์ฝ๋
function solution(participant, completion) {
let map = new Map();
for (let i = 0; i < participant.length; i++) {
map.set(participant[i], (map.get(participant[i]) || 0) + 1);
map.set(completion[i], (map.get(completion[i]) || 0) - 1);
}
for (let [k, v] of map) {
if (v > 0) return k;
}
}
728x90
'๐ Algorithm > ํ๋ก๊ทธ๋๋จธ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์บ์ (0) | 2023.04.27 |
---|---|
์์ ์ง๋ (0) | 2023.03.31 |
๊ฐ๋ฏธ ๊ตฐ๋จ (0) | 2023.03.04 |
๋ชจ์ ์ ๊ฑฐ (0) | 2023.03.04 |
์ง๋ฃ ์์ ์ ํ๊ธฐ (0) | 2023.03.04 |
๋๊ธ