https://school.programmers.co.kr/learn/courses/30/lessons/120812
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
코테 스터디에서 각자 풀어보기로 한 문제!
입문문제였지만 꽤 난이도가 있었던 .. 😱
function solution(array) {
// array의 길이가 1일 경우 갯수가 하나이기에 array[0]을 반환해준다.
if (array.length === 1) return array[0];
const obj = {};
const answer = [];
// array를 forEach() 반복문을 돌려
// obj에 값이 없으면 값을 만들고 1을 넣어주고
// obj에 값이 있으면 기존 값 +1을 해준다. (삼항연산자)
array.forEach((n) => {
obj[n] = obj[n] ? ++obj[n] : 1;
});
// 값과 그 값의 갯수를 정의해 둔 obj를 array에 넣어준다.
// ex) [[1, 1], [2, 1], [3, 3], [4, 1]]
for (let key in obj) {
answer.push([key, obj[key]]);
}
// answer 배열을 갯수 기준으로 내림차순 정렬을 해준다.
// ex) [[3, 3], [4, 1], [2, 1], [1, 1]]
answer.sort((a, b) => b[1] - a[1]);
// 최빈값이 여러 개면 -1을 반환해야 하기 때문에 확인한다.
if (answer.length > 1 && answer[0][1] === answer[1][1]) return -1;
// 여러개가 아니라면 정렬한 처음 값을 반환한다.
return Number(answer[0][0]);
}
console.log(solution([1, 2, 3, 3, 3, 4])); // 3'TIL' 카테고리의 다른 글
| 6월 21일 TIL - redux로 todolist 만들기 (2) - 추가, 삭제 (0) | 2023.06.22 |
|---|---|
| 6월 20일 TIL - redux로 todolist 만들기 (1) (0) | 2023.06.20 |
| 6월 16일 TIL - json-server 설치 오류 (0) | 2023.06.16 |
| 6월 15일 TIL - react) todo-list 아이템 간 id 중복 문제 (0) | 2023.06.15 |
| 6월 14일 TIL - react : key값은 컴포넌트로 전달되지 않는다 (0) | 2023.06.14 |