Created
January 15, 2024 12:07
-
-
Save bongbongbon/a5bc45c9f670b8d6066ba11560d3eef7 to your computer and use it in GitHub Desktop.
JavaStudy07.java
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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