주어져 있는 정수에 따라서 최빈값을 구해야 하는데요.
가령 1 1 1 -1 -1 3 2 -1 4
이런 수가 주어져 있으면 1과 -1이 3개로 가장 많기 때문에 -1, 1을 각 각 출력해줘야 하고
최빈값의 최대 횟수인 3회를 출력해줘야 하며 그 최대 횟수인 최빈값들의 개수 (1, -1)가 몇개인지 역시 출력해줘야 합니다. (1, -1이기 때문에 2)
이렇게 해야하는데, 알고리즘을 계속 구상해봐도
1. 선택정렬로 오름차순 정렬 한다.
2. 배열로 받아 반복문 안에서 앞의 수와 뒤의 수를 비교해준다 (arr[0] == arr[1] 이런식으로 계속. 오름차순 정렬되어있으니 가능)
3. 일치하면 계속 count (횟수)를 증가시켜주고, 일치하지 않은 순간 result 변수에 해당 값을 입력시킨 뒤
횟수를 count2라는 변수에 저장시키고 count는 초기화시켜준다.
4. 개수를 세기 위해 count2에 저장된 최대의 값이 몇개인지 알아야 한다.
(위의 조건에 따르면 3개인 경우가 2번 있겠지요..)
이정도가 딱 떠오르는 바 입니다.
코드를 알고싶다는게 아니라, 어떤식의 구상이 더 필요한지 조언을 부탁드립니다..ㅜㅜ
3번까지는 구현했는데 4번을 어떤식으로 해야 할지도 계쏙 고민중이구요...
한 5시간정도 고민해보다가 결국 질문 올립니다. ㅠㅠ