

빈칸 채우기라 문제는 풀었는데 막상 코드가 이해가 안갔다. 심지어 소수 부분을 버리는 코드는 어디지? 찾고 있었다.
/ 나눗셈 연산자가 이를 수행해주기 때문에 따로 없어도 되는 것이었다.
class Main { int[] func_a(int[] arr){ // arr[]의 값을 counte[]의 인덱스로 활용해 해당 숫자가 몇개 있는지 세는 함수 int[] counter = new int[1001]; for(int i = 0; i < arr.length; i++) counter[arr[i]]++; return counter; } int func_b(int[] arr){ // arr[0]번째부터 반복문을 돌려 "가장 많이 등장하는 수"의 개수를 구하는 함수 int ret = 0; for(int i = 0; i < arr.length; i++){ if(ret < arr[i]) ret = arr[i]; } return ret; } int func_c(int[] arr){ // 가장 적게 등장하는 수의 개수를 구하는 함수 final int INF = 1001; int ret = INF; for(int i = 0; i < arr.length; i++){ if(arr[i] != 0 && ret > arr[i]) ret = arr[i]; } return ret; } public int solution(int[] arr) { int[] counter = func_a(arr); int maxCnt = func_b(counter); int minCnt = func_c(counter); return maxCnt / minCnt; }
<테스트 케이스>
// 아래는 테스트케이스 출력을 해보기 위한 main 함수입니다. public static void main(String[] args) { Main sol = new Main(); int[] arr = {1, 2, 3, 3, 1, 3, 3, 2, 3, 2}; int ret = sol.solution(arr); System.out.println("solution 메소드의 반환 값은 " + ret + " 입니다."); } }