IF - 학급 회장(해쉬)
문제
학급 회장을 뽑는데 후보로 기호 A, B, C, D, E 후보가 등록을 했습니다.
투표용지에는 반 학생들이 자기가 선택한 후보의 기호(알파벳)가 쓰여져 있으며 선생님은 그
기호를 발표하고 있습니다.
선생님의 발표가 끝난 후 어떤 기호의 후보가 학급 회장이 되었는지 출력하는 프로그램을 작
성하세요. 반드시 한 명의 학급회장이 선출되도록 투표결과가 나왔다고 가정합니다.
예시
arr | Output |
---|---|
"BACBACCACCBDEDE" | C |
풀이 및 회고
- 원소 중 가장 빈도가 많은 원소를 찾는 문제이다.
- 각 원소를 key로 갖는 해시 맵을 만들면, key 와 같은 원소가 나올 때마다 value를 1씩 늘려줄 수 있다.
코드
const solution = (votes) => {
const arr = votes.split("");
let max = 0;
let captatin = '';
const candidates = {};
arr.forEach((el) => {
if(candidates[el]) candidates[el]++;
else candidates[el] = 1;
});
for(let student in candidates) {
if(candidates[student] > max) {
max = candidates[student];
captatin = student;
}
}
return captatin;
}
Author And Source
이 문제에 관하여(IF - 학급 회장(해쉬)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@goody/IF-학급-회장해쉬저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)