정답
import java.util.Arrays;
class Solution {
public int solution(int[] array) {
int answer = 0;
int max = 0;
Arrays.sort(array); //오름차순 정렬을 하여 가장 큰 수를 맨 뒤로 보낸다
max = array[array.length-1]; //인덱스가 0부터 시작하므로 배열의 길이에서 1뺀 인덱스 값을 넣어 max에 저장
//max의 길이를 array 배열 중 가장 큰 수로 정하는 이유
// - array 배열의 값을 count 인덱스 주소에 저장할 예정이기 때문
//각 수를 세고 저장할 count 배열 생성
int count[] = new int[max+1]; //max 인덱스가 0부터 시작하므로 길이는 +1 해준다
for(int i=0;i<array.length;i++){
count[array[i]]++; //count 배열에 array로 정렬된 배열 값을 넣어준다
}
max = count[0]; //가장 첫 주소값 인덱스 0값을 max에 대입 > 이후 count 길이만큼 진행
for(int i=1;i<count.length;i++){ //for문이 진행되는 동안
if(max<count[i]){ //max보다 count 배열값이 더 크면
max=count[i]; //max에 count 배열값 저장
answer = i; //최종적으로 가장 많이 count 값이 저장된 인덱스 i를 answer에 대입
}else if(max == count[i]){ //만일 max값이 count 배열의 모든 값과 동일하다면
answer = -1; // -1을 리턴
}
}
return answer;
}
}
'JAVA > 연습노트' 카테고리의 다른 글
[프로그래머스 - 자바] 문자 반복 출력 (2) | 2024.04.01 |
---|---|
[프로그래머스 - 자바] 자릿수 더하기 (0) | 2024.03.31 |
[프로그래머스-자바] 최댓값 만들기 (0) | 2024.03.30 |
[프로그래머스-자바] 모음제거 (0) | 2024.03.29 |
2차원 배열, 열의 총합, 행의 총합 (0) | 2024.03.27 |