Data Structure & Algorithm

[알고리즘-JS] 해시 - 학급 회장 투표 결과

fnow 2022. 5. 3. 22:47
반응형

문제

N개의 투표 용지에 A, B, C, D, E 각 후보의 기호가 적혀져 있습니다. 투표 용지에 쓰여진 기호가 발표된 순서대로 입력하면, 누가 학급 회장이 되었는지 출력하는 프로그램을 작성하시오.

 

입력 예제

10

ABBACCACED

 

출력 예제

A

 

 

풀이

function solution(n, s) {
  let answer;
  let hash = new Map();
  
  for (let x of s) {
    // 해당 문자열이 해시에 존재하면,
    // 기존 값을 get으로 가져와서 1 증가
    if (hash.has(x)) hash.set(x, hash.get(x)+1);
    // 해당 문자열이 해시에 존재하지 않으면, key와 value 생성
    else hash.set(x, 1); 
  }
  
  let max = Number.MIN_SAFE_INTEGER;
  
  for (let [key, val] of hash) {
    if (val > max) {
      max = val;
      answer = key;
    }
  }
  
  return answer;
}

 

 

반응형