본문 바로가기
알고리즘/프로그래머스(Lv.0)

[프로그래머스] Lv.0 최빈값 구하기

by cejin 2023. 11. 14.

1. 문제

매개변수 : 정수 배열 array

리턴값 : 최빈값 (여러 개면 -1)

조건 : 0 < array 길이 < 100 , 0 <= array 원소 < 1000

 

 

 

2. 풀이 

1) array 원소가 하나면 그 값을 리턴

2) array 배열을 오름차순 정렬 : Array.sort() 이용

3) index 배열에 array 배열 복사

4) index 배열 중복 제거 : Arrays.stream(index).distinct().toArray() 이용

5) 빈도수를 구하는 sum 배열 만들기

6) index와 array 배열을 이용해서 sum 배열에 값 넣기

7) sum 배열에서 가장 큰 값 구하기 (가장 빈도수가 높은 값)

8) 빈도수가 같은 값이 있는지(cnt로 확인)와 빈도수가 클 때의 인덱스(maxIndex) 찾기

9) cnt가 1보다 크면(중복이 있으면) -1 리턴, 아니면 index[maxIndex] 출력

 

* 풀 코드 : https://github.com/cejinn/programmers_lv0/blob/main/basic039.java