학급 회장


문제 설명

학급 회장을 뽑는데 후보로 기호 A, B, C, D, E 후보가 등록을 했습니다.
투표용지에는 반 학생들이 자기가 선택한 후보의 기호(알파벳)가 쓰여져 있으며 선생님은 그 기호를 발표하고 있습니다.
선생님의 발표가 끝난 후 어떤 기호의 후보가 학급 회장이 되었는지 출력하는 프로그램을 작성하세요. 반드시 한 명의 학급회장이 선출되도록 투표결과가 나왔다고 가정합니다.


출력

▣ 입력설명
첫 줄에는 반 학생수 N(5<=N<=50)이 주어집니다.
두 번째 줄에 N개의 투표용지에 쓰여져 있던 각 후보의 기호가 선생님이 발표한 순서대로 문자열로 입력됩니다.

▣ 출력설명
학급 회장으로 선택된 기호를 출력합니다.

▣ 입력예제 1
15
BACBACCACCBDEDE

▣ 출력예제 1
C


문제 풀이

//학급회장
//해쉬 맵
//map은 key,value값으로 구성되어 있다. 
//has는 있으면 참 없으면 거짓으로 반환
function solution(s) {
    let answer;
    let sH = new Map();
    for(let x of s){
        //물어보는 것이 있나 x의 key이 존재하는지
        if(sH.has(x)){
            //sH.get을 사용하여 기존의 값을 가져오고 거기서 +1을 해줘라
            sH.set(x, sH.get(x)+1);          
        }
        else{
            //key가 존재하지않으면 새로운 키를 생성해서 1로 만들어라
            sH.set(x,1);
        }
    }
    let max = Number.MIN_SAFE_INTEGER;
    //key에는 key값인 BACBACCACCBDEDE 
    //value에는 value값인 233522 값이 드러감
    for(let [key,value] of sH){
        if(value > max){
            max = value;
            //max의 값이 아닌 key값이 정답
            answer = key;
        }
    }
    return answer;
}

let str = "BACBACCACCBDEDE";
console.log(solution(str));


hashmap의 구성은 key,value로 되어 있고 has는 참이나 거짓으로 반환 sH.set을 사용하여 키를 생성해주고 sH.get을 통해 기존값의 가져오고 거기서 +1을 해줘라
for(let [key,value])을 통해 key,value 값을 뽑아 올 수 있다.


profile
개발 옆차기

0개의 댓글