학급 회장 : Hash

frenchkebab·2021년 8월 23일
0
post-thumbnail


내 풀이

<script>
function solution(s) {
  let answer;
  let map = new Map();
  for (let x of s) {
    // if (map.has(x)) 로 하면 됨
    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개 선언하면 된다...
profile
Blockchain Dev Journey

0개의 댓글