/* 뺑뺑이 만들기
    각 중학교 1차원 배열
 * 문제) 2009년도 대전 시내 초등학교 졸업생이 200명이다. (0~199번) 이 학생들을
        대전중학교에 45명, 한밭중학교에 40명, 갈마중학교에 30명, 둔산중학교에 50명,
        성모중학교에 35명을 배정하라. 그리고 위와 같이 학교별 배정 학생번호 리스트와
        학번별 학교배정 리스트를 출력하시오.
 */

 

public class HomeWork02 {
    public static void main(String[] args) {
        int[] 학번 = 학생번호(200);
        int[] 배당학교 = 뺑뺑이(학번);
        int num = 0;
        for(int i = 0 ; i < 중학교.length ; i++){
            HomeWork02 hw = new HomeWork02();
            System.out.println("============================================================================");
            System.out.println("학교명 : " + 중학교[i]);
            System.out.println("============================================================================");
            for(int j = 0 ; j < 학번.length ; j ++){
                if(배당학교[j] == i){
                    System.out.print(학번[j] + "\t");
                    num += 1;
                    if(num % 10 == 0) System.out.println(" ");
                }
            }
            System.out.println("학생수 : " + num);
            num = 0;
            System.out.println("============================================================================");
            System.out.println(" ");
            System.out.println(" ");
        }
        System.out.println("============================================================================");
        System.out.println("\t번호\t학교번호\t학교명\t누적학생수");
        System.out.println("============================================================================");
        int[] 누적학생수 = new int[중학교.length];   
        for(int i = 0 ; i < 학번.length ; i++){
            for(int j = 0 ; j < 중학교.length ; j++){
                if(j == 배당학교[i]){
                    누적학생수[j] += 1;
                    System.out.printf("%10d\t%8d\t%6s\t%6d\n", 학번[i], 배당학교[i], 중학교[j], 누적학생수[j]);          
                }else{
                  
                }
            }
        }
        System.out.println("============================================================================");     
    }
    static int[] 뺑뺑이(int[] a){                   
        int[] x = new int[a.length];                                // 학교배정 x
        int 대전중학생수 = 0, 한밭중학생수 = 0, 갈마중학생수 = 0,
                둔산중학생수 = 0, 성모중학생수 = 0;
        int total = 0;
        while(total < a.length){
     gogo : for(int i = 0 ; i < a.length ; i++){
                x[i] = (int)(Math.random()*5);
                if(x[i] == 0){
                    if(대전중학생수 >= 45){
                        i = i - 1;
                        continue gogo;
                    }else{
                        대전중학생수 += 1;
                    }
                }
                else if(x[i] == 1){
                    if(한밭중학생수 >= 40){
                        i = i - 1;
                        continue gogo;
                    }else{
                        한밭중학생수 += 1;
                    }
                }
                else if(x[i] == 2){
                    if(갈마중학생수 >= 30){
                        i = i - 1;
                        continue gogo;
                    }else{
                        갈마중학생수 += 1;
                    }
                }
                else if(x[i] == 3){
                    if(둔산중학생수 >= 50){
                        i = i - 1;
                        continue gogo;
                    }else{
                        둔산중학생수 += 1;
                    }
                }
                else{
                    if(성모중학생수 >= 35){
                        i = i - 1;
                        continue gogo;
                    }else{
                        성모중학생수 += 1;
                    }
                }
            }
                total = 대전중학생수 + 한밭중학생수 + 갈마중학생수 +
                    둔산중학생수 + 성모중학생수;   
        }
        return x;                            
    }
    static int[] 학생번호 (int a){
        int[] 번호 = new int[a];
        for(int i = 0 ; i < a ; i++){           // 학생번호 생성
            번호[i] = i;
        }
        return 번호;
    };
    static String[] 중학교 = new String[]{
        "대전중학교", "한밭중학교", "갈마중학교", "둔산중학교", "성모중학교"
    };
}

 

반응형

+ Recent posts