Java

인프런 워밍업 클래스 5일차 과제

jmboy 2024. 2. 23. 11:23

진도표 5일차와 연결됩니다

우리는 <클린 코드>라는 개념을 배웠습니다. <클린 코드>에 대한 감각을 익히기 위해서는 어떤 코드가 좋은 코드이고, 어떤 코드가 좋지 않은 코드인지 이론적인 배경을 학습하는 것도 중요할 뿐 아니라, 다양한 코드를 읽어 보며 어떤 부분이 읽기 쉬웠는지, 어떤 부분이 읽기 어려웠는지, 읽기 어려운 부분은 어떻게 고치면 좋을지 경험해보는 과정이 필요합니다.

이번 과제는 제시된 코드를 읽어보며, 코드를 더 좋은 코드로 고쳐나가는 과정입니다. 구글에 “클린 코드” 혹은 “클린 코드 정리”를 키워드로 검색해보면, 이론적인 배경을 충분히 찾아보실 수 있습니다. 🙂 그러한 내용들을 보며 제시된 코드를 더 좋은 코드로 바꿔보세요! (코드를 바꿀 때 왜 바뀐 코드가 더 좋은 코드인지 다른 사람에게 설명하신다고 생각해보시면 더욱 좋습니다.)

 

[제시된 코드]

  • 여러 함수로 나누어도 좋습니다! 🙂
  • 여러 클래스로 나누어도 좋습니다! 🙂

 

 

 

 주사위 사진 예시 : https://www.google.com/search?sca_esv=600310596&rlz=1C5CHFA_enKR1067KR1067&sxsrf=ACQVn0_iT-qBMV0p_q-wUsDQsHY8hFBtlA:1705893428440&q=정십이면체+주사위&tbm=isch&source=lnms&prmd=ivsnbmz&sa=X&ved=2ahUKEwjMqc6ehPCDAxUSk1YBHUYeCcEQ0pQJegQIDhAB&biw=1512&bih=806&dpr=2


package com.group.libraryapp;

import java.util.Scanner;

public class Ex5HomeWork {
        public static void main(String[] args) {
            System.out.println("숫자를 입력하세요");
            Scanner scanner = new Scanner(System.in);
            int a=scanner.nextInt();
            int [] arr = new int[a+1];
            for (int i = 0; i < a; i++) {
                double b= Math.random()*a;
                int dice = (int) Math.ceil(b);
                arr[dice] += 1;
            }
            for (int i = 1; i < arr.length; i++) {
                System.out.println(i+"은"+arr[i]+"번 나왔습니다. \n");
            }
        }
}

  • 클린코드로 작성하기 위해 한일
    • list를 만들어서 입력 받는 숫자의 길이만큼 만들어 주었다. (+1을 한 이유는 0번은 제외하려고)
    • 이후 random으로 숫자를 받을 때 int 로 캐스팅하기 위해 double을 ceil 함수를 사용해서 올림하였다. 
    • 이후 list의 인덱스에 맞추어 +1씩 해주었다. 
    • 반복문을 통해 다시한번 list를 순회하며 값을 출력하였다.