티스토리 뷰

반응형

⊙ 문제

 

0~99 사이의 정수를 키보드에서 10개 입력받아 10 단위 간격의 히스토그램을 출력하는 프로그램을 작성하시오. 입력된 수가 음수이면 무시하시오. 예를 들어 위쪽처럼 10개의 정수가 입력되었을 때는 아래쪽처럼 히스토그램을 출력한다.

 


 

⊙ 문제 접근 과정

 

배열에 카운팅을 해주고 값이 올라간만큼 '*'을 출력하도록 코딩해봤다.

 

 


 

⊙ 문제 풀이

 

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        int[] num = new int[10];
        int[] hist = {0,0,0,0,0,0,0,0,0,0};

        Scanner in = new Scanner(System.in);

        System.out.println("숫자를 10개 입력하세요.");
        for(int i=0; i< num.length; i++) {
            num[i] = in.nextInt();

            if(num[i]>=0 && num[i]<10) {
                hist[0] ++;
            }
            else if(num[i]>=10 && num[i]<20) {
                hist[1] ++;
            }
            else if(num[i]>=20 && num[i]<30) {
                hist[2] ++;
            }
            else if(num[i]>=30 && num[i]<40) {
                hist[3] ++;
            }
            else if(num[i]>=40 && num[i]<50) {
                hist[4] ++;
            }
            else if(num[i]>=50 && num[i]<60) {
                hist[5] ++;
            }
            else if(num[i]>=60 && num[i]<70) {
                hist[6] ++;
            }
            else if(num[i]>=70 && num[i]<80) {
                hist[7] ++;
            }
            else if(num[i]>=80 && num[i]<90) {
                hist[8] ++;
            }
            else if(num[i]>=90 && num[i]<100) {
                hist[9] ++;
            }
        }


        for(int i=0; i< hist.length; i++) {
            System.out.print((i*10)+"~"+(i*10+9)+":");
            for(int j=0; j<hist[i]; j++) {
                System.out.print("*");
            }
            System.out.println("");
        }
    }
}

 

 


⊙ 결과

 


⊙ 마무리

 

NONE

 

좋아요 로그인하지 않아도 누를 수 있습니다!

 

728x90
반응형
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
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
글 보관함