
내 풀이
<script>
function solution(s) {
let answer;
let map = new Map();
for (let x of s) {
if (!map.get(x)) {
map.set(x, 1);
} else {
map.set(x, map.get(x) + 1);
}
}
let max = [undefined, Number.MIN_SAFE_INTEGER];
for (let x of map.keys()) {
if (map.get(x) > max[1]) {
max[0] = x;
max[1] = map.get(x);
}
}
answer = max[0];
return answer;
}
let str = 'BACBACCACCBDEDE';
console.log(solution(str));
map
으로 푼 첫 문제라 조금 어색했음
- 굳~~이
max
를 저렇게 배열로 선언할 필요가 없었음
solution 풀이
function solution(s) {
let map = new Map();
for (let x of s) {
if (!map.has(x)) map.set(x, 1);
else map.set(x, map.get(x) + 1);
}
let max = Number.MIN_SAFE_INTEGER;
let answer;
for (let [key, val] of map) {
if (max < val) {
max = val;
answer = key;
}
}
return answer;
}
let str = 'BACBACCACCBDEDE';
console.log(solution(str));
새로 알게된 것들
for 문
의 순환 변수를 저렇게 배열로 두어도 되는지 처음 알았다
map.has()
를 사용하여 해당 원소가 있는지 확인할 수 있는지 처음 알았다
- 저렇게 최대값 변수 / 최대값 를 갱신하려면 그냥 변수를 2개 선언하면 된다...