최빈값 구하기
문제
최빈값은 주어진 값 중에서 가장 자주 나오는 값을 의미합니다. 정수 배열 array
가 매개변수로 주어질 때, 최빈값을 return 하도록 solution 함수를 완성해보세요. 최빈값이 여러 개면 -1을 return 합니다.
제한사항
0 <
array
의 길이 < 1000 ≤
array
의 원소 < 1000
입출력 예
array | result |
---|---|
[1, 2, 3, 3, 3, 4] | 3 |
[1, 1, 2, 2] | -1 |
[1] | 1 |
입출력 예 설명
입출력 #1
[1, 2, 3, 3, 3, 4]에서 1은 1개 2는 1개 3은 3개 4는 1개로 최빈값은 3입니다.
입출력 #2
[1, 1, 2, 2]에서 1은 2개 2는 2개로 최빈값이 1, 2입니다. 최빈값이 여러 개이므로 -1을 return 합니다.
입출력 #3
[1]에는 1만 있으므로 최빈값은 1입니다.
코드
코드 풀이
||
연산자에서 왼쪽 피연산자가 falsy 값이면 오른쪽 피연산자를 반환하는 것을 이용해서 다음과 같이 작성할 수 있다.
객체
obj
에서 키n
의 값을 가져온다.해당 값이 존재하는 경우, 값을 1 증가(
++
)시킨다.해당 값이 존재하지 않는 경우, 1을 할당한다.
for...in
구문은 객체의 프로퍼티 이름(key)을 순서대로 변수에 할당한다.
따라서 key 변수에는 obj 객체의 각 프로퍼티 이름이 담기게 된다.
❓ for...in
vs. for...of
차이점
for...in
구문은 객체의 프로퍼티를 반복하는 것for...of
구문은 배열을 반복하는 것
🔍 테스트 케이스
처음 작성한 코드에서는 Run time error가 나서 참고할만한 테스트 케이스를 같이 작성했다.
Last updated