[멘토씨리즈 JAVA] 13강 배열 - 로또번호 생성기

    SMALL

    1. 동작 원리

    - 로또 번호 6개, 보너스 번호 1개를 랜덤하게 추출

    - 사용자가 가지고 있는 로또번호 6개, 보너스 번호 1개를 입력받음

    -  맞춘 개수: 6개 > 1등

                        5개 + 보너스 > 2등
                       5개(보너스 X) > 3등

                       4개 > 4등

                       3개 > 5등

                       0, 1, 2개 > 꽝

     

    2. 코드

    import java.io.*;
    import java.util.*; // scanner, random
    
    // 로또 프로그램 알고리즘
    
    public class Main {
      public static void main(String[] args) {
    
        Scanner sc = new Scanner(System.in);
    
        Random random = new Random();
    
        int[] lotto = new int[6];
        // 로또번호 저장 (1~45)
        int[] user_lotto = new int[6];
        // 사용자 입력 번호
        int bonus, user_bonus;
        // 보너스 번호, 사용자 입력 보너스 번호
        int cnt = 0; // 동일 숫자 count 변수
    
        // <로또>
        for (int i = 0; i < 6; i++) {
          lotto[i] = random.nextInt(45) + 1;
          // 1~45
          // * random.nextInt(x) => 0 ~ (x-1)
        } // 로또 번호 6개
    
        bonus = random.nextInt(45) + 1;
    
        System.out.println("Lotto: " + Arrays.toString(lotto) + " bonus: " + bonus);
    
        // <사용자>
        System.out.print("숫자 6개 입력: ");
        for (int i = 0; i < 6; i++) {
          user_lotto[i] = sc.nextInt();
        } // 로또 번호 6개
    
        System.out.print("보너스 숫자 입력: ");
        user_bonus = sc.nextInt();
    
        System.out.println("User: " + Arrays.toString(user_lotto) + " bonus: " + user_bonus);
    
        // 동일 숫자 개수 counting
        for (int i = 0; i < 6; i++) {
          for (int j = 0; j < 6; j++) {
            if (lotto[i] == user_lotto[j]) {
              cnt++;
            }
          }
        }
    
        System.out.println("총 맞춘 개수: " + cnt);
    
        // 6개 > 1등 5개 + 보너스 > 2등
        // 5개 > 3등 4개 > 4등 3개 > 5등
        if (cnt == 6) {
          System.out.println("1등");
        } else if (cnt == 5) {
          if (bonus == user_bonus) {
            System.out.println("2등");
          } else { // 보너스 점수가 다름
            System.out.println("3등");
          }
        } else if (cnt == 4) {
          System.out.println("4등");
        } else if (cnt == 3) {
          System.out.println("5등");
        } else {
          System.out.println("꽝");
        }
    
      }
    }

     

    3. 개념 짚기!

    - Arrays.toString(배열) > 배열을 console에 보여줌! ex. [ 6 , 7, 19 ]

    - Random random = new Random() > 난수 생성!

    728x90

    댓글