Q. 후보 A,B,C,D,E 가 있다. 투표 용지에 쓰여있던 기호를 순서대로 나열했을때 선출된 기호 출력
A.
function solution(s) {
let answer;
let sH = new Map();
for (let x of s) {
if (sH.has(x)) sH.set(x, sH.get(x) + 1);
else sH.set(x, 1);
}
let max = Number.MIN_SAFE_INTEGER;
for (let [key, val] of sH) {
if (val > max) {
max = val;
answer = key;
}
}
return answer;
}
let str = 'BACBACCACCBDEDE';
console.log(solution(str));
[코드 순서]
- new Map() : key가 있는 데이터를 저장할 수 있다 예를 들면math:1 이런식.
- sH라는 변수에 새로운 Map 생성자 할당 - map.has(key): sH안에 기존의 x가 존재하는지 확인
- 없을경우 , sH.set(key,value)를 사용 : key를 이용해 value를 저장, 처음이므로 1 추가
- 있을경우, sH.get(x) : key가 x인 value값을 반환, 기존에 있다면 카운팅을 해줘야하므로 +1 추가 그리고 나서 그 값을 set해주기
- for문으로 [key,value]하나씩 확인
- 만약 vale값이 기준이되는 max보다 크다면, max=value
- 구해야하는 값은 key값이므로(A,B,C...) 가장 큰 value의 key return
'알고리즘 정리' 카테고리의 다른 글
기본 재귀함수 (0) | 2023.05.24 |
---|---|
Queue 자료구조 (0) | 2023.05.02 |
스택자료구조 사용한 후위식 (0) | 2023.05.01 |
슬라이딩 윈도우 (0) | 2023.04.18 |
빈도 수 찾기 (0) | 2022.11.14 |