배열내 숫자들의 각 빈도수를 출력하는 코드 구현하기
❓ [1, 3, 3, 2, 1, 1, 3, 0, 1, 2] 각 숫자별 빈도 수는?
✨ 결과화면(권장 풀이 기준)
💡 나의 풀이코드
package cosPro2;
// 배열내 숫자들의 각 빈도수를 출력하는 코드를 구현
import java.util.*;
public class _01_배열 {
public static void main(String[] args){
int[] Arr = {1, 3, 3, 2, 1, 1, 3, 0, 1, 2};
int[] ar = new int[4];
for(int i=0; i<Arr.length; i++){
if(Arr[i]==0){
ar[0] += 1;
}
else if(Arr[i]==1){
ar[1] += 1;
}
else if(Arr[i]==2){
ar[2] += 1;
}
else
ar[3] += 1;
}
System.out.println(Arrays.toString(ar));
}
}
📌 풀이방식
더보기
- 각 숫자별 빈도수를 담을 새 배열 생성
- 반복문과 조건문을 이용 -> 해당 숫자들이 일치할 경우 1 씩 증가시킴
💡 권장 풀이코드
package cosPro2;
// 배열내 숫자들의 각 빈도수를 출력하는 코드를 구현
public class _01_배열 {
public static void main(String[] args) {
// 1. 배열 선언
int[] Arr = {1, 3, 3, 2, 1, 1, 3, 0, 1, 2};
// 2. 배열내 각 숫자들의 빈도수 출력
// 2-1. 빈 정수형 배열(ar)을 하나 만들어놓고 초깃값은 모두 0으로 셋팅
// 2-2. Arr 배열 내 숫자를 빈 배열(ar)의 인덱스로 적용,
// 해당 인덱스의 ar 배열 요소의 값을 1씩 증가시키기
// 2-3. 빈 배열(ar)의 요소 갯수는 Arr 배열내 숫자들의 종류만큼 지정 // 0, 1, 2, 3 => 총 4개 생성
int[] ar = new int[4]; // 기본 초기값 0으로 셋팅
for(int i=0; i<Arr.length; i++) {
ar[Arr[i]]++;
};
for(int i=0; i<ar.length; i++){
System.out.println(i + " 번 -> " + ar[i]);
}
}
}
💌 후기
더보기
아니 왜 저렇게 편한 방식을 놔두고 API패키지(import java.util.*)까지 추가해가면서 복잡하게 작성했을까..?
최근에 예습한 파트가 배열이라서 더 머릿속에 남아있었나보다.
예제문제들을 풀면서 결과값이 같더라도 더 효율적이고 간결한 방식이 있는지 생각하고 적용해서
시험때 시간에 쫓기지 않게 연습하자!!
'CERTIFICATION > cosPro' 카테고리의 다른 글
03. 이중 반복문 (0) | 2024.02.17 |
---|---|
02. 짝수 구하기 (1) | 2024.02.16 |