ํฐ์คํ ๋ฆฌ ๋ทฐ
๋ฌธ์
ํ๊ธ ํ์ฅ์ ๋ฝ๋๋ฐ ํ๋ณด๋ก ๊ธฐํธ A, B, C, D, E ํ๋ณด๊ฐ ๋ฑ๋ก์ ํ์์ต๋๋ค.ํฌํ์ฉ์ง์๋ ๋ฐ ํ์๋ค์ด ์๊ธฐ๊ฐ ์ ํํ ํ๋ณด์ ๊ธฐํธ(์ํ๋ฒณ)๊ฐ ์ฐ์ฌ์ ธ ์์ผ๋ฉฐ ์ ์๋์ ๊ทธ ๊ธฐํธ๋ฅผ ๋ฐํํ๊ณ ์์ต๋๋ค.์ ์๋์ ๋ฐํ๊ฐ ๋๋ ํ ์ด๋ค ๊ธฐํธ์ ํ๋ณด๊ฐ ํ์ฅ์ด ๋์๋์ง ์ถ๋ ฅํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์ธ์.๋ฐ๋์ ํ ๋ช ์ ํ๊ธํ์ฅ์ด ์ ์ถ๋๋ก๋ก ํฌํ๊ฒฐ๊ณผ๊ฐ ๋์๋ค๊ณ ๊ฐ์ ํฉ๋๋ค.
๋ฌธ์ ํ์ด
๊ฐ์ฒด์ ๊ฐ ํ๋ณด์ ๊ธฐํธ๋ฅผ ๊ฐ ํ๋กํผํฐ๋ก ์ ์ฅํ์๊ณ ๊ฐ ํ๋ณดํค๊ฐ ์ง๋ช ๋ ๊ฐ์ Value(0)๋ก ์ด๊ธฐํ ํด์ฃผ์๋ค.ํด๋น ๋ฌธ์์ด์ ์ํํ๋ฉฐ ๋ฌธ์์ด ๋ด ํ๋ณด ๊ธฐํธ(x) ๋ฌธ์๋ฅผ ํค(Key)๊ฐ์ผ๋ก, ์์ ๊ฐ์ฒด์ ํ๋กํผํฐ์ ์ ๊ทผํ์ฌ ์ง๋ช ๋ ๊ฐ์ ์ฆ๊ฐ์์ผ ์ฃผ์๋ค.
์ฝ๋
function solution(str) {
let answer;
let max = Number.MIN_SAFE_INTEGER;
let result = {
A: 0,
B: 0,
C: 0,
D: 0,
E: 0,
}
for(let x of str) {
result[x] += 1;
max = Math.max(max, result[x]);
if(max === result[x]) answer = x;
}
return answer;
}
console.log(solution('BACBACCACCBDEDE'));
๋ฌธ์ ํ์ด2_Hash Map
์๋ฃ๊ตฌ์กฐ์ ์ ํ
- ์ด๋ฆ(์ผ๋ฐ ๋ณ์๋ช ) ๋์ ์ ๋ฒํธ(์ธ๋ฑ์ค)๊ฐ ์ฃผ์ด์ก์ ๊ฒฝ์ฐ: ๋ฐฐ์ด(Array)์ ์ฌ์ฉ
- ๋ฌธ์์ด๋ก ์ ๊ทผํด์ผ ๋๋ ๊ฒฝ์ฐ: ํด์ฌ(Hash)๋ฅผ ์ฌ์ฉ
ํด์ฌ
- ํด์ฌ(Hash Table): ํด์ฌ ๊ฐ์ ์์ธ(index) ์ฃผ์ ๊ฐ๊ณผ ํค(Key)๋ฅผ ํจ๊ป ์ ์ฅํ๋ ์๋ฃ๊ตฌ์กฐ
- Key์ Value๋ฅผ ์ด์ฉํ์ฌ ๋ฐฐ์ด์ฒ๋ผ ์ฌ์ฉ ๊ฐ๋ฅ
JS์ Map ๊ฐ์ฒด
- Map ๊ฐ์ฒด๋ ํค์ ๊ฐ์ ์์ผ๋ก ์ด๋ฃจ์ด์ง ์ปฌ๋ ์ _๊ฐ์ฒด์ ์ ์ฌ
- ํค๋ก ์ฌ์ฉํ ์ ์๋ ๊ฐ: ๊ฐ์ฒด๋ฅผ ํฌํจํ ๋ชจ๋ ๊ฐ
- ์ดํฐ๋ฌ๋ธ: True_for๋ฌธ์ ํตํด ์์๋ฅผ ์ํ ๋ฐ ์ฐธ์กฐ ๊ฐ๋ฅ
Map ๊ฐ์ฒด๋ฅผ ์ด์ฉํ์ฌ ๊ฐ ํ๋ณดํค(๋ฌธ์)๋ ํค(Key) ๊ฐ์ด๊ณ ์ง๋ช ๋ ํ์๋ ๊ฐ(Value)์ธ ํ ์์ผ๋ก ์๋ฃ ๊ตฌ์กฐ๋ฅผ ์์ฑํ๋ค.
์ฝ๋
function solution(str) {
let answer;
let max = Number.MIN_SAFE_INTEGER;
let sH = new Map();
for(let x of str) {
if(!sH.has(x)) {
sH.set(x, 1);
} else {
sH.set(x, (sH.get(x) + 1))
}
max = Math.max(max, sH.get(x));
if(max === sH.get(x)) answer = x;
}
return answer;
}
console.log(solution('BACBACCACCBDEDE'));
function solution(str) {
let answer;
let sH = new Map();
for(let x of str) {
if(sH.has(x)) {
sH.set(x, sH.get(x) + 1)
} else {
sH.set(x, 1);
}
}
let max = Number.MIN_SAFE_INTEGER;
for(let [key, val] of sH) {
if(val > max) {
max = val
answer = key;
}
}
return answer;
}
console.log(solution("BACBACCACCBDEDE"));
'์๊ณ ๋ฆฌ์ฆ > ํ๊ทธ ๋ณ ํ์ด' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ชจ๋ ์๋๊ทธ๋จ ์ฐพ๊ธฐ (0) | 2021.07.09 |
---|---|
[ํด์ฌ]์๋๊ทธ๋จ (0) | 2021.07.08 |
[์ฌ๋ผ์ด๋ฉ ์๋์ฐ]์ต๋ ๋งค์ถ (0) | 2021.07.06 |
[ํฌํฌ์ธํฐ ์๊ณ ๋ฆฌ์ฆ] ์ฐ์ ๋ถ๋ถ ์์ด(2) (0) | 2021.07.05 |
[ํฌํฌ์ธํฐ ์๊ณ ๋ฆฌ์ฆ]์ฐ์ ๋ถ๋ถ ์์ด(1) (0) | 2021.07.03 |