import java.util.Arrays;
import java.util.HashSet;
import java.util.Scanner;
import java.util.Set;

public class Lottery {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        /*
            로또 번호 생성기
            1. 몇 줄 생성할 것인지 입력 받으면
            2. 난수를 생성해서 배열에 저장하고
            3. 출력해줌
         */

        int[][] nums = null;

        while (true) {
            // 유저 입력으로 메뉴 선택
            System.out.println(":::::::::::::: 로또 번호 생성기 :::::::::::::::");
            System.out.println("[1] 생성하기\t\t\t[2] 나가기");
            System.out.print(">>> ");
            int user_input = sc.nextInt();

            // 생성 루틴
            if (user_input == 1) {
                // 생성할 줄 수 입력
                System.out.println("\n몇 줄 생성할까요? (ex. 5)");
                System.out.print(">>> ");
                user_input = sc.nextInt();

                // 배열 초기화
                nums = new int[user_input][6];

                // 난수 생성 후 배열에 저장
                for (int i=0; i<user_input; i++) {
                    Set<Integer> uniqueNumbers = new HashSet<>(); // 같은 줄에 있는 숫자끼리는 중복될 수 없어야 하므로 '집합'을 사용

                    while (uniqueNumbers.size() < 6) {
                        int r = (int)((Math.random() * 45) + 1);    // 0 ~ 44에서 랜덤값 +1 -> 1 ~ 45 뽑힘
                        uniqueNumbers.add(r);
                    }

                    // Set의 내용을 배열에 저장 (for each 문)
                    int index = 0;
                    for (int number : uniqueNumbers) {
                        nums[i][index++] = number;
                    }

                    // 오름차순 정렬
                    Arrays.sort(nums[i]);
                }

                // 결과 출력
                System.out.print("\n:::::::::: 오늘의 로또 번호 조합 :::::::::::\n");
                for (int i=0; i<user_input; i++) {
                    System.out.printf("%d번째 조합: ", i+1);
                    System.out.print(Arrays.toString(nums[i]));
                    System.out.print("\n");
                }
                System.out.print(":::::::::::::::: Good Luck! ::::::::::::::::\n\n");

                // 결과 출력 후 재시작 이전 확인
                System.out.println("계속하려면 아무 키나 누르세요.");
                System.out.print(">>> ");
                sc.nextLine(); // 입력 버퍼 비우기
                sc.nextLine(); // 사용자 입력 대기
                System.out.print("\n\n");

            } else if (user_input == 2){
                break;

            } else {
                System.out.println("정확한 숫자를 입력해주세요.\n");
            }
        }
        sc.close(); // Scanner 닫기
    }
}

+ Recent posts