[1,0,1,2,1,0,3 ] -> [0,0,1,1,1,2,3]
//1. 앞에서부터 차례대로 원소를 확인하며 갯수를 센다.
//2. 최빈값을 그때그때 기록한다.
function solution(array) {
let sortedArray = array.sort((a,b) => a-b);//오름차순으로 배열 정렬하기
var answer = 0;
let cnt = 0 ;
let mode = -1; //최빈값이 뭔지, 최빈값은 등장할 수 없는 값(-1),
let modeRepeatCnt = 0; //최빈값이 될 때 몇번 반복해서 된건지
let repeatCnt = 0; //현재 똑같은 숫자가 몇번 등장했는지
let beforeNumber = -1; //지금 보고있는 숫자 이전 숫자
let isDupMode = false; //최빈값이 중복되었는지
while (cnt < array.length) {
if(beforeNumber !== array[cnt]){
repeatCnt = 1 ;
}else {
repeatCnt++;
}
if(repeatCnt === modeRepeatCnt){
if (mode !== array[cnt]){
isDupMode = true;
}
}
if(repeatCnt > modeRepeatCnt){
mode = array[cnt];
modeRepeatCnt = repeatCnt;
isDupMode = false;
}
beforeNumber = array[cnt];
cnt++;
}
if(isDupMode) return -1;
return mode;
}
'Javascript > 프로그래머스Lv0' 카테고리의 다른 글
Math.ceil 함수 문제 (0) | 2024.06.11 |
---|---|
피자 나눠 먹기 (1) | 2024.06.11 |
짝수는 싫어요 (1) | 2024.06.11 |
중앙값 구하기 (1) | 2024.06.07 |
두 수의 몫 구하기/ 두 수의 나눗셈/두 수 비교하기/최대공약수/배열 두 배 만들기 (0) | 2024.06.06 |