Programmers
[프로그래머스][JS] 최빈값 구하기
winter17
2023. 7. 4. 17:20
https://school.programmers.co.kr/learn/courses/30/lessons/120812
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
풀이 과정
function solution(array) {
let obj = {} // array 배열을 객체로 만들기
for (let i = 0; i < array.length; i++){
const num = array[i]
if (obj[num]){
obj[num]++
}else{
obj[num] = 1
}
}
// console.log(obj)
let value = [] // 객체에서 value만 뽑기
for (i in obj){
value.push(obj[i])
}
// console.log(value)
const maxValue = Math.max(...value) // value 중 가장 큰 값 찾기
// console.log(maxValue)
let result = [] // 가장 큰 value 중 obj의 value값과 동일하면 key를 result에 push
for (i in obj){
if (maxValue === obj[i]){
result.push(i)
}
}
// console.log(result)
if (result.length === 1){ // 길이가 1이면 숫자로 변환 후 반환
return Number(result[0])
}else{ // 여러 개면 -1 반환
return -1
}
}
배열을 객체로 만드는 방법을 알아야 최빈값을 구하기 수월하다.
코드에 대한 설명은 위의 코드에 주석처리해 두었다.
리뷰
객체 만드는 부분까지 시도했다가 그 이후가 잘 안 풀려서 오늘 다시 시도했는데
코드를 중복되게 작성한 것 같지만 스스로 풀어냈다는 것에 의의를...!