[COS PRO 2급 JAVA] 등장하는 가장 많은수와 적은수 구하기

옹잉·2023년 10월 8일

COS PRO 2급 JAVA

목록 보기
4/13

[문제]


[막혔던 점]

빈칸 채우기라 문제는 풀었는데 막상 코드가 이해가 안갔다. 심지어 소수 부분을 버리는 코드는 어디지? 찾고 있었다.
/ 나눗셈 연산자가 이를 수행해주기 때문에 따로 없어도 되는 것이었다.

[풀이]

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 + " 입니다.");
	}
}
profile
틀리더라도 🌸🌈🌷예쁘게 지적해주세요💕❣️

0개의 댓글