5번째 과제 [인프런 워밍업 클럽 스터디 BE 1주차]

heisje·2024년 2월 23일
0

문제

풀이과정

사실 자바를 잘 모른다.. 하지만 적용하고 싶었던 것은, 겉에서 볼 때 흐름이 잘 보이도록 만드는 것이다. 이런 흐름을 가장 잘 보여주는 방법이 메소드 체이닝이라고 생각한다. 또한 dice의 종류를 정하거나, 굴리는 개수를 외부에서 입력받아 변화에 자유롭게 만들었다.

제출 코드

main

import java.util.Scanner;

public class Main {
    public static void main(String[] args) throws Exception{
        System.out.print("숫자를 입력하세요 : ");
        Scanner scanner = new Scanner(System.in);
        int rollNum = scanner.nextInt();

        new Dice(12).roll(rollNum).displayResults();
    }
}

Dice class

import java.util.Arrays;
import java.util.stream.IntStream;

public class Dice {
    private int maxNum;
    private int[] result;

    public Dice(int maxNum) {
        this.maxNum = maxNum;
        this.result = new int[maxNum];
    }

    public Dice roll(int rolls){
        for (int i = 0; i < rolls; i++) {
            int randomNumber = (int)(Math.random() * maxNum);
            result[randomNumber]++;
        }
        return this;
    }

    public void displayResults() {
        IntStream.range(0, maxNum)
                .forEach(i -> System.out.printf("%d는 %d번 나왔습니다.\n", i + 1, result[i]));
    }
}
profile
김희제의 기술블로그

0개의 댓글