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 닫기
}
}