728x90
문제💭
나의 풀이👨💻
function solution(array) {
let count = Array(Math.max(...array) + 1).fill(0);
array.forEach(num => {
count[num]++;
})
let maxCount = Math.max(...count);
if (count.indexOf(maxCount) === count.lastIndexOf(maxCount)) {
return count.indexOf(maxCount);
} else {
return -1;
}
}
다른 사람의 풀이👨🏫
1.
function solution(array) {
let m = new Map();
for (let n of array) m.set(n, (m.get(n) || 0)+1);
m = [...m].sort((a,b)=>b[1]-a[1]);
return m.length === 1 || m[0][1] > m[1][1] ? m[0][0] : -1;
}
2.
const solution = (array) => {
const counter = array.reduce((acc, cur) => ({
...acc,
[cur]: (acc[cur] || 0) + 1
}), {})
const items = Object.keys(counter).map((key) => [
Number(key), counter[key]
]).sort((a, b) => b[1] - a[1])
if (items[0][1] === items?.[1]?.[1]) {
return -1
}
return items[0][0];
}
Reference
- 프로그래머스
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
728x90
'Programmers > Lv.0' 카테고리의 다른 글
[프로그래머스][Js] Lv.0 - OX퀴즈 (0) | 2023.03.17 |
---|---|
[프로그래머스][Js] Lv.0 - 분수의 덧셈 (0) | 2023.03.15 |
[프로그래머스][Js] Lv.0 - 다음에 올 숫자 (0) | 2023.03.15 |
[프로그래머스][Js] Lv.0 - 연속된 수의 합 (1) | 2023.03.14 |
[프로그래머스][Js] Lv.0 - 안전지대 (0) | 2023.03.14 |
댓글