728x90
๋ฐ์ํ
๐ 06 - ํ๊ธ ํ์ฅ(ํด์ฌ)
ํฌํ์ฉ์ง์๋ ๋ฐ ํ์๋ค์ด ์๊ธฐ๊ฐ ์ ํํ ํ๋ณด์ ๊ธฐํธ(์ํ๋ฒณ)๊ฐ ์ฐ์ฌ์ ธ ์์ผ๋ฉฐ ์ ์๋์ ๊ทธ ๊ธฐํธ๋ฅผ ๋ฐํํ๊ณ ์๋ค. ์ ์๋์ ๋ฐํ๊ฐ ๋๋ ํ ์ด๋ค ๊ธฐํธ์ ํ๋ณด๊ฐ ํ๊ธ ํ์ฅ์ด ๋์๋์ง ์ถ๋ ฅํ๋ ๋ฌธ์ ์ด๋ค.
๋์ ํ์ด ๋ฐฉ๋ฒ
Map ๊ฐ์ฒด๋ [ํค, ๊ฐ] ํํ์ ๊ฐ์ ๊ฐ์ง๋ ๊ฐ์ฒด๋ก ํค ๊ฐ์ ์ ์ผํด์ผ ํ์ง๋ง ๊ฐ์ ์ค๋ณต, ๋ณ๊ฒฝ์ด ๊ฐ๋ฅํ๋ฉฐ ์์๊ฐ ์๊ด์ด ์๋ค.
๊ฐ์ฒด์ ๋น์ทํด๋ณด์ด์ง๋ง Map ๊ฐ์ฒด๋ ํค์ ๋ค์ํ ์๋ฃํ์ ํ์ฉํ๋ค๋ ์ ์์ ์ฐจ์ด๊ฐ ์๋ค.
- Map ๊ฐ์ฒด๋ฅผ ์์ฑํด์ค๋ค. (new Map())
- ๋ฌธ์์ด์ ์ฐจ๋ก๋๋ก ๋๋ฉฐ has() ํจ์๋ฅผ ์ด์ฉํ์ฌ key๊ฐ ์กด์ฌํ๋์ง ํ์ธ์ ํ๋ค.
- key๊ฐ ์ด๋ฏธ ์กด์ฌํ๋ ๊ฒฝ์ฐ ๋จผ์ get() ํจ์๋ฅผ ์ด์ฉํ์ฌ key์ ํด๋นํ๋ ๊ฐ์ ๋ฐํ๋ฐ์ + 1์ ํด์ค๋ค.
- set() ํจ์๋ฅผ ์ด์ฉํ์ฌ Map๊ฐ์ฒด์ ์๋กญ๊ฒ ์ ์ฅํด์ค๋ค. (ํค๊ฐ ๋์ผํ๋ฉด ๋ฎ์ด๋ฒ๋ฆฐ๋คโ)
- key๊ฐ ์กด์ฌํ์ง ์๋ ๊ฒฝ์ฐ set() ํจ์๋ฅผ ์ด์ฉํ์ฌ key์ value๋ฅผ ์ ์ฅํ๋ค.
- ์ ๊ณผ์ ์ด ๋๋๋ฉด value๋ค์ ๋น๊ตํ์ฌ ๊ฐ์ฅ ํฐ ๊ฐ์ ์ฐพ๋๋ค.
๐ ํ์ด
function solution(s) {
let answer;
let map = new Map();
for (let x of s) {
if (map.has(x)) {
map.set(x, map.get(x) + 1);
} else map.set(x, 1);
}
let max = Number.MIN_SAFE_INTEGER;
for (let [key, value] of map) {
if (max < value) {
max = value;
answer = key;
}
}
return answer;
}
let str = 'BACBACCACCBDEDE';
console.log(solution(str));
'Algorithm > ์ธํ๋ฐ(inflearn)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[JavaScript/section 5] 08 - ๋ชจ๋ ์๋๊ทธ๋จ ์ฐพ๊ธฐ (0) | 2022.09.22 |
---|---|
[JavaScript/section 5] 07 - ์๋๊ทธ๋จ (0) | 2022.09.21 |
[JavaScript/section 5] 05 - ์ต๋ ๋งค์ถ (0) | 2022.09.20 |
[JavaScript/section 5] 04 - ์ฐ์ ๋ถ๋ถ์์ด 2 (0) | 2022.09.19 |
[JavaScript/section 5] 03 - ์ฐ์ ๋ถ๋ถ ์์ด 1 (0) | 2022.09.19 |