https://school.programmers.co.kr/learn/courses/30/lessons/120812
프로그래머스
SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr

오늘은 머리가 잘 안돌아갔다...
몸이 이상하게 피곤하고 눈이 자꾸 감기는게 약간은 쉬어줘야하는 타임이 다시 온것같다 ㅠㅠ
사실 추석까지 공부를 계속 무리해서 하다보니 약간 방전된감이 없지않아 있다..
하지만 1일 1알고리즘 챌린지를 최대한 지키기 위해서 최대한 풀어보았다..
function solution(array) {
let answer = 0;
let freq = {};
let value = 0;
let maxCount = 0;
let maxValue = 0;
let countOfMax = 0;
for(let i = 0 ; i<= array.length-1; i++){
value = array[i];
if (freq[value]) {
freq[value] += 1;
} else {
freq[value] = 1;
}
}
for(let key in freq){
if(freq[key] > maxCount){
maxValue = Number(key);
maxCount = freq[key];
countOfMax = 1;
}
else if(freq[key] === maxCount){
countOfMax++;
}
}
countOfMax > 1 ? answer = -1 : answer = maxValue;
return answer;
}
코드를 딱 봐도 굉장히 어영부영 정리가 안된듯한 느낌이 든다.
접근방식
- 배열 array를 받아서 freq라는 객체에 담는다. 이때 key 값은 숫자, value 값은 횟수가 들어가도록 한다.
- 다음으로 객체를 순회하기위해 for in 문법을 사용하여 key와 value값을 변수에 담아준다.
- 마지막으로 삼항연산자를 사용하여 값이 2개 이상일때와 1개일때의 반환되는 값에 차별화를 준다.
'알고리즘' 카테고리의 다른 글
| [1일 1 알고리즘] D+6 - 배열의 평균값 (0) | 2026.02.21 |
|---|---|
| [1일 1 알고리즘] D+5 - 정수 내림차순으로 배치하기 (0) | 2026.02.19 |
| [1일 1 알고리즘] D+3 - 숫자 문자열과 영단어(카카오 채용 연계형 인턴쉽) (0) | 2026.02.15 |
| [1일 1 알고리즘] D+2 - 유클리드 호제법 (0) | 2026.02.14 |
| [1일 1 알고리즘] D+1 - 몫 구하기 (0) | 2026.02.12 |