반응형

 

문제

 

package kr.or.ddit.homework;

public class HomeWork16 {
	public static void main(String[] args) {
		/*
		 *  1. 주사위 1개를 던지는 메소드 만들기 .
		 *  
		 *  2. 주사위 2개를 던지는 메소드 만들기 
		 *   -> 1. 주사위 한개 던지는 메소드 활용. 
		 *  
		 *  3. 주사위 2개를 여러번 던지는 메소드 만들기.
		 *    파라미터 int num 
		 *    return int 배열 
		 *   -> 2. 주사위 2개를 던지는 메소드 만들기 활용.
		 *  
		 *  4. 주사위 2개 던지기 num 만큼 실행 후 출력하기.
		 *    -> 3. 주사위 2개를 여러번 던지는 메소드 만들기. 
		 *    값을 받아서 출력하기 .
		 *    
		 *    2   **
		 *    3   ****
		 *    4   ******
		 *    5   ********
		 *    6   ***********
		 *    7   ***************
		 *    8   ***********
		 *    9   ********
		 *    10  *****
		 *    11  ****
		 *    12  **
		 *  
		 *  
		 */
	}
}

 

 

 

정답

 

package kr.or.ddit.homework;

import java.util.Arrays;
import java.util.Random;
import java.util.Scanner;

public class HomeWork16 {
	public static void main(String[] args) {
		/*
		 * 1. 주사위 1개를 던지는 메소드 만들기
		 * 
		 * 2. 주사위 2개를 던지는 메소드 만들기
		 *  -> 1. 주사위 한개 던지는 메소드 활용
		 *  
		 * 3. 주사위 2개를 여러번 던지는 메소드 만들기
		 * 	파라미터 int num
		 *  return int 배열
		 *  -> 2. 주사위 2개를 던지는 메소드 만들기 활용.
		 *  
		 * 4. 주사위 2개 던지기 num 만큼 실행 후 출력하기.
		 *  -> 3. 주사위 2개를 여러번 던지는 메소드 만들기.
		 *  값 받아서 출력하기.
		 *  
		 *  
		 *   2   **
		 *   3   ****
		 *   4   ******
		 *   5   ********
		 *   6   ***********
		 *   7   ***************
		 *   8   ***********
		 *   9   ********
		 *   10  *****
		 *   11  ****
		 *   12  **
		 * 
		 */
		
		HomeWork16 h = new HomeWork16();
		Scanner sc = new Scanner(System.in);
		
		System.out.println("주사위를 몇 번 던지겠습니까?");
		int number = sc.nextInt();
		System.out.println();
		int[] numArray = h.twoDice(number);
		
		h.sortArray(numArray);
		int[] num = h.numberDice(numArray);
		int[] perce = h.percentage(num, number);
		h.printDice(perce);
		
	}
	
	public int oneDice() {
		return new Random().nextInt(6)+1;
	}
	
	public int[] twoDice(int num) {
		int[] numArray = new int[num];
		for(int i=0; i<num; i++) {
			numArray[i] = oneDice() + oneDice();
			// 확인
//			System.out.println(numArray[i]);
		}
		return numArray;
	}
	
	// 정렬
	public void sortArray(int[] numArray) {
		Arrays.sort(numArray);
//		System.out.println(Arrays.toString(numArray));
	}
	
	// 갯수 확인
	public int[] numberDice(int[] numArray) {
		// 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12
		int[] num = new int[11];
		
		for(int i=0; i<num.length; i++) {
			for(int j=0; j<numArray.length; j++) {
				if(numArray[j] == 2+i) {
					num[i]++;
				} else {
					continue;
				}
			}
		}
		
		return num;
	}
	
	// 백분율
	public int[] percentage(int[] num, int number) {
		int[] perce = new int[num.length];
		for(int i=0; i<num.length; i++) {
			perce[i] = num[i] * 100 / number ;
//			System.out.println(perce[i]);
		}
		return perce;
	}
	
	// 프린트
	public void printDice(int[] perce) {
		for(int i=0; i<perce.length; i++) {
			System.out.print((2+i) + " ");
			for(int j=0; j<perce[i]; j++) {
				System.out.print("■");
			}
			System.out.println();
		}
	}
}

 

결과 화면1

 

 

반응형