과정
1. 받은 데이터 중 가장 큰 수 만큼의 크기를 가진 배열(countArr) 선언
a. array의 데이터 중 가장 큰 수를 먼저 찾기
b. 찾은 가장 큰 수를 배열의 크기로 함
=> 여기에 각 숫자별 나온 횟수를 데이터로 저장
2. countArr 배열에 각 숫자별 나온 횟수 데이터 넣기
3. 가장 자주 나온 값과 그 횟수 구하기
4. 최빈값이 여러 개인지 확인
a. 가장 자주 나온 값은 제외하고 for 문 검사하기
풀이
using System;
public class Solution {
public int solution(int[] array)
{
int topValue = 0; // array의 데이터중 가장 큰 수
int answer = 0;
int topCount = 0; // 가장 자주 나온 값의 횟수
// 가장 큰 수 찾기
for(int i = 0; i < array.Length; i++){
if(array[i] > topValue)
topValue = array[i];
}
int[] countArr = new int[topValue + 1]; //각 데이터별 나온 횟수를 가진 배열
// countArr에 값이 나온 횟수 넣기
for(int i = 0; i < array.Length; i++)
{
countArr[array[i]]++;
}
// 가장 자주 나온 값과 그 횟수 구하기
for(int i = 0; i < countArr.Length; i++){
if(countArr[i] >topCount){
topCount = countArr[i];
answer = i;
}
}
// 최빈값이 여러 개일때
for(int i = 0; i < countArr.Length; i++){
if(i != answer && countArr[i] == topCount){
answer = -1;
}
}
return answer;
}
}
'코딩 테스트 > 프로그래머스' 카테고리의 다른 글
[프로그래머스][C# 풀이][Lv.1] 신고 결과 받기 (0) | 2023.11.17 |
---|---|
[프로그래머스][C# 풀이][Lv.0] 로그인 성공? (0) | 2023.11.16 |