Skip to content

Instantly share code, notes, and snippets.

@bongbongbon
Created January 15, 2024 12:07
Show Gist options
  • Save bongbongbon/a5bc45c9f670b8d6066ba11560d3eef7 to your computer and use it in GitHub Desktop.
Save bongbongbon/a5bc45c9f670b8d6066ba11560d3eef7 to your computer and use it in GitHub Desktop.
JavaStudy07.java
import javax.annotation.processing.Generated;
import java.util.Arrays;
import java.util.Random;
import java.util.Scanner;
public class JavaStudy07 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("로또 갯수를 입력해주세요(숫자 1~10):");
int numOfTickets = scanner.nextInt();
String[] lottoTickets = new String[numOfTickets];
for (int i = 0; i < numOfTickets; i++) {
lottoTickets[i] = generateLottoTicket();
}
System.out.println();
int[] winningNumbers = generateLottoNumbers();
printLottoNumbers(winningNumbers);
System.out.println("\n[내 로또 결과]");
for (int i = 0; i < numOfTickets; i++) {
char ticketLabel = (char) ('A' + i);
int matchCount = countMatchingNumbers(winningNumbers, extractNumbersFromTicket(lottoTickets[i]));
System.out.println(ticketLabel + " " + lottoTickets[i] + " => " + matchCount + "개일치");
}
scanner.close();
}
private static int[] generateLottoNumbers() {
int[] lottoNumbers = new int[6];
Random random = new Random();
for (int i = 0; i < 6; i++) {
int randomNumber;
do {
randomNumber = random.nextInt(45) + 1; // 1부터 45까지의 난수 생성
} while (contains(lottoNumbers, randomNumber)); // 중복된 번호 방지
lottoNumbers[i] = randomNumber;
}
Arrays.sort(lottoNumbers); // 번호 정렬
return lottoNumbers;
}
private static String generateLottoTicket() {
int[] lottoNumbers = generateLottoNumbers();
StringBuilder ticket = new StringBuilder();
for (int i = 0; i < lottoNumbers.length; i++) {
ticket.append(lottoNumbers[i]);
if (i < lottoNumbers.length - 1) {
ticket.append(", ");
}
}
return ticket.toString();
}
private static boolean contains(int[] array, int value) {
for (int num : array) {
if (num == value) {
return true;
}
}
return false;
}
private static int countMatchingNumbers(int[] winningNumbers, int[] userNumbers) {
int matchCount = 0;
for (int userNumber : userNumbers) {
if (contains(winningNumbers, userNumber)) {
matchCount++;
}
}
return matchCount;
}
private static void printLottoNumbers(int[] lottoNumbers) {
System.out.print("[로또 발표]\n");
for (int i = 0; i < lottoNumbers.length; i++) {
System.out.print(formatNumber(lottoNumbers[i]));
if (i < lottoNumbers.length - 1) {
System.out.print(", ");
}
}
System.out.println("\n");
}
private static String formatNumber(int number) {
return String.format("%02d", number);
}
private static int[] extractNumbersFromTicket(String lottoTicket) {
String[] numberStrings = lottoTicket.split(", ");
int[] numbers = new int[numberStrings.length];
for (int i = 0; i < numberStrings.length; i++) {
numbers[i] = Integer.parseInt(numberStrings[i]);
}
return numbers;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment