최빈값 구하기 알고리즘

김치헌·2023년 12월 21일

TIL

목록 보기
1/38

오늘 처음으로 알고리즘 문제를 접해보게 되었다.
아직 C#이 익숙하지 않아서인지 최빈값을 구하는 문제에서 도저히 감이 잡히지 않았다.

문제 설명

최빈값은 주어진 값 중에서 가장 자주 나오는 값을 의미합니다. 
정수 배열 array가 매개변수로 주어질 때, 최빈값을 return 하도록 solution 함수를 완성해보세요. 
최빈값이 여러 개면 -1을 return 합니다.

문제 인식

문제를 해결하기 위해 간단하게 순차적인 알고리즘을 생각해보았다.
1. 배열에 입력되어 있는 숫자를 파악한다.
2. 같은 숫자인자 판별한다.
3. 같은 숫자라면 카운트한다.
4. 카운트 된 숫자 중 가장 높은 숫자를 확인한다.
5. 최빈값이 여러개면 -1을 return
순서대로 코딩을 하면 되겠다고 생각했다.

시도한 방법

array를 array2에 복사하여 for문을 통해 같은 값을 count배열에 저장하였다.

배열중 최대값을 max변수에 저장하고 최빈값이 여러개인 경우를 확인해 보아야하는데 arry값을 배열함수에 입력하여 확인해 보려고 해도 Null 값이 들어와서 다른 값과 비교가 어려웠다.

문제해결 구글링

정수로 선언되었기 때문에 InDex당 숫자 1개씩 지정하여 Count를 올려준 후 max값과 같은 Index가 2개 이상이면 -1을 return해주는 방법을 사용하였다.

생각해 볼 것

실수이라면 Index당 숫자 1개를 배열하는게 불가능 할 텐데 어떻게 비교를 해야 할까?
좀 더 고민해 봐야겠다.

profile
초보개발자

0개의 댓글