참고자료 | [#10][프로그래머스][입문] 최빈값 구하기
, 증가 연산자(++)
function solution(array) {
let obj = {};
let arr = [];
for (let i of array) obj[i] ? ++obj[i] : obj[i] = 1;
for (let i in obj) arr.push([i, obj[i]]);
arr.sort((a,b) => b[1] - a[1]);
if (arr.length > 1 && arr[0][1] === arr[1][1]) return -1;
return Number(arr[0][0]);
};
let obj = {};
let arr = [];
{프로퍼티:개수}
for (let i of array) obj[i] ? ++obj[i] : obj[i] = 1;
for (let i in obj) arr.push([i, obj[i]]);
for (let i of array)
구문은 배열 array의 요소를 순회하는 반복문임 -> i 변수에는 배열의 각 요소가 순차적으로 할당된다.
요소의 값이 객체 obj의 프로퍼티로 이미 존재하는지 확인한 후, 존재한다면 해당 프로퍼티의 값을 1 증가시키고, 존재하지 않는다면 해당 요소의 값을 프로퍼티로 추가하고 1로 값을 설정.
예시)
array = [1,2,3,3,6,6,6];
인 경우 반환되는 값: { '1': 1, '2': 1, '3': 2, '6': 3 }
a++
: 피연산자 뒤에 연산자를 붙여서 사용한다면 증가 연산자는 수를 증가시키고 증가하기 전 값을 반환함let x = 3;
const y = x++;
// x = 4
// y = 3
++a
: 피연산자 앞에 연산자를 붙여서 사용한다면 증가 연산자는 수를 증가시키고 증가 후 값을 반환함let x = 3;
const y = ++x;
// x = 4
// y = 4
arr.sort((a,b) => b[1] - a[1]);
sort()
를 사용한 배열 내림차순, 오름차순 정렬 방법 참고 -> JavaScript - 배열 오름차순, 내림차순 정렬 .sort()
if (arr.length > 1 && arr[0][1] === arr[1][1]) {
return -1;
}
return Number(arr[0][0]);