본문 바로가기

알고리즘/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
import java.util.Scanner;
 
public class Main {
 
    public static void main(String[] args) {
 
        int [] arr = new int [10];
        int num =0;
        int stop =0;
        
        Scanner sc = new Scanner(System.in);
        
        while(true) {
            num = sc.nextInt();
            if(num ==0) {
                for(int i=0;i<arr.length;i++) {
                    if(arr[i] > 0) {
                        System.out.println(i+" : "+arr[i]);                        
                    }
                }
                break;
            }
            for(int i=0;i<arr.length;i++) {
                if(num/10 == i) {
                    arr[i]++;
                }
            }
        }
    }
}
 
 

 

> 문제에서 제시한 십의 자리수를 저장할 10의 길이의 배열을 생성하여 준다.

   문제에서 몇개의 값을 입력해줄지 나와있지않기때문에 While문을 사용하여 0을 입력받기 전까지 무한으로 입력을받     는다.

 

> if문을 사용하여 0이라는 값을 입력받았을때에는 문제에서 원하는 값을 출력하도록한다.

 

> for문을 사용하여 arr배열의 길이만큼 for문을 돌리고 입려받은 값을 10으로 나눳을때 나온 몫과 i가 일치할때

   i에 해당하는 배열의 방을 1씩 증가시켜준다. 

   (이렇게되면 arr이라는 배열에는 십의자리수가 몇번입력됬는지 알수있게된다.)