728x90
https://school.programmers.co.kr/learn/courses/30/lessons/120812
문제)최빈값은 주어진 값 중에서 가장 자주 나오는 값을 의미합니다. 정수 배열 array가 매개변수로 주어질 때, 최빈값을 return 하도록 solution 함수를 완성해보세요. 최빈값이 여러 개면 -1을 return 합니다.
풀이)
public class Solution {
public int solution(int[] array) {
int answer = -1; // 최빈값을 저장하는 변수, 초기값으로 -1을 설정
int maxFrequency = 0; // 최빈값의 등장 횟수를 저장하는 변수, 초기값으로 0을 설정
for (int i = 0; i < array.length; i++) {
int currentNumber = array[i]; // 현재 위치의 숫자
int currentFrequency = 1; // 현재 숫자의 등장 횟수, 초기값으로 1을 설정
// 현재 숫자와 같은 숫자들의 등장 횟수를 세기
for (int j = i + 1; j < array.length; j++) {
if (currentNumber == array[j]) {
currentFrequency++;
}
}
// 현재 숫자의 등장 횟수가 최빈값의 등장 횟수보다 크면 최빈값을 업데이트
if (currentFrequency > maxFrequency) {
maxFrequency = currentFrequency;
answer = currentNumber;
} else if (currentFrequency == maxFrequency) {
// 최빈값이 여러 개인 경우 -1을 반환하기 위해 mode를 -1로 설정
answer = -1;
}
}
return answer; // 최종적으로 찾은 최빈값 반환
}
}
HashMap으로는 풀기 싫어서 1시간 넘게 생각해낸 방법이다...생각보다 복잡해서 어려웠음ㅠㅠㅠ최빈값구하기...
728x90
'프로그래밍 > Java(자바)' 카테고리의 다른 글
[프로그래머스] 문자 반복 출력하기 -- java (0) | 2023.12.20 |
---|---|
[프로그래머스] 문자열 뒤집기 -- java (0) | 2023.12.20 |
[프로그래머스] 모음 제거 -- java Feat. replace(), replaceAll(), 정규표현식 (1) | 2023.12.19 |
[프로그래머스] 문자열안에 문자열 -- java Feat.String 클래스의 indexOf, contains (0) | 2023.12.19 |
[프로그래머스] 자릿수 더하기 -- java (0) | 2023.12.19 |