본문 바로가기

알고리즘/Jungol

[Java] 정올기초다지기 배열2-형성평가02

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
package 배열2.형성평가02;
 
import java.util.Scanner;
 
public class Main {
 
    public static void main(String[] args) {
 
        int [] arr = new int [100];
        int arr2 [] = {10,9,8,7,6,5,4,3,2,1,0};
        int [] cnt = new int [11];
        int score = 0;
        
        Scanner sc = new Scanner(System.in);
        
        for(int i=0;i<arr.length;i++) {
            score = sc.nextInt();
            arr[i] = score/10;
            if(score == 0) {
                for(int j=0;j<arr2.length;j++) {
                    if(cnt[j]>0) {
                        System.out.println(arr2[j]*10+" : "+cnt[j]+" person");
                    }
                }
                break;
            }
            else {
                for(int j=0;j<arr2.length;j++) {
                    if(arr2[j] == arr[i]) {
                        cnt[j]++;
                    }                
                }
            }
        }    
    }
}
 
 

> 출력을 100 90 80 70 점 순으로 출력해야하기 때문에 10,9,8,7,6,5,4~ 로 진행하게 되는 arr2배열을 만듭니다.

   cnt라는 빈 배열을 새로 만들어 해당하는 점수에 맞게 cnt를 해줄수있도록 만듭니다.

   arr[i]라는 배열에 입력값 /10을 하여 저장하여줍니다.

   그 저장된값을 for문을 사용하여 배열의길이만큼반복하여주고 그 반복하는동안 arr2[i] == arr[i] 즉 동일한 숫자가있을시 cnt++ cnt라는 배열을 1씩 증가시켜 카운트해줍니다.

 

>score 에 0이라는 숫자를 입력받게되면 cnt한 값들과 arr2[j]*10 을 하여 점수와 카운트수를 출력하여 줍니다.