1 분 소요

image

[인프런 워밍업 클럽 1기] BE 5일차 본 게시글은 다음 강의 내용을 진행하고 있습니다.

자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지] - https://inf.run/XKQg

문제 1

image

image

풀이 과정, 한 걸음 더

사용자로부터 입력을 받는 부분, 주사위를 던지고 계산하는 부분, 결과를 출력하는 부분으로 메소드를 분리하여 구현했다.

숫자 범위가 달라지더라도 동작하도록 코드를 수정했다.

DiceRoller.java

package com.group.libraryapp.controller.assignment3;

import java.util.Scanner;

public class DiceRoller {

    public static void main(String[] args) {
        int numOfFaces = getNumOfFaces(); // 주사위 면의 수를 입력 받음
        int[] faceCounts = rollDice(numOfFaces); // 주사위를 던져 각 숫자의 출현 횟수를 계산
        printResult(faceCounts); // 결과 출력
    }

    // 사용자로부터 주사위 면의 수를 입력받는 메소드
    private static int getNumOfFaces() {
        System.out.println("주사위 면의 수를 입력하세요:");
        Scanner scanner = new Scanner(System.in);
        return scanner.nextInt();
    }

    // 주사위를 던져 각 숫자의 출현 횟수를 계산하는 메소드
    private static int[] rollDice(int numOfFaces) {
        int[] faceCounts = new int[numOfFaces];
        for (int i = 0; i < numOfFaces; i++) {
            double randomValue = Math.random() * numOfFaces;
            int face = (int) randomValue;
            faceCounts[face]++;
        }
        return faceCounts;
    }

    // 결과를 출력하는 메소드
    private static void printResult(int[] faceCounts) {
        for (int i = 0; i < faceCounts.length; i++) {
            System.out.printf("%d은(는) %d번 나왔습니다.\n", i + 1, faceCounts[i]);
        }
    }
}

결과 - 6 입력

image

결과 - 20 입력

image

댓글남기기