더보기
- 최빈값 구하기
문제 설명
제한사항
입출력 예arrayresult
입출력 예 설명
최빈값은 주어진 값 중에서 가장 자주 나오는 값을 의미합니다. 정수 배열 array가 매개변수로 주어질 때, 최빈값을 return 하도록 solution 함수를 완성해보세요. 최빈값이 여러 개면 -1을 return 합니다.
제한사항
- 0 < array의 길이 < 100
- 0 ≤ array의 원소 < 1000
입출력 예arrayresult
[1, 2, 3, 3, 3, 4] | 3 |
[1, 1, 2, 2] | -1 |
[1] | 1 |
입출력 예 설명
입출력 예 #1
- [1, 2, 3, 3, 3, 4]에서 1은 1개 2는 1개 3은 3개 4는 1개로 최빈값은 3입니다.
입출력 예 #2
- [1, 1, 2, 2]에서 1은 2개 2는 2개로 최빈값이 1, 2입니다. 최빈값이 여러 개이므로 -1을 return 합니다.
입출력 예 #3
- [1]에는 1만 있으므로 최빈값은 1입니다.
계속 틀렸다고 나오다가,,, 여러번 코드 다시 처음부터 치니까 풀렸다. 알고리즘은 처음 알고리즘 그대로 했는데 아무래도 코드 작성 시 실수가 있었나보다...
function solution(array) {
var answer = 0;
let list = new Set(array);
list = Array.from(list);
let countList = [];
list.map(e=>{
countList.push([e,0]);
})
console.log(countList);
for (let i =0; i < array.length; i++){
for (let j=0; j<countList.length; j++){
if (array[i] === countList[j][0]){
countList[j][1] += 1;
}
}
}
countList.sort(function(a,b) {
return b[1] - a[1];
})
if (countList.length === 1){
answer = countList[0][0];
} else {
if (countList[0][1] === countList[1][1]){
answer = -1;
} else {
answer = countList[0][0];
}
}
return answer;
}
'Algorithm > Programmers' 카테고리의 다른 글
[프로그래머스 JS] 소인수분해 (0) | 2022.11.22 |
---|---|
[프로그래머스 JS] 구슬을 나누는 경우의 수 : BigInt() (0) | 2022.11.17 |
[프로그래머스 JS] 최대공약수 최소공약수 유클리드 호제법 (0) | 2022.11.10 |
[구현] 문자열 재정렬 (파이썬) (0) | 2022.08.04 |
[구현] 럭키 스트레이트 (파이썬) (0) | 2022.08.04 |