당첨 번호와 사용자의 로또 번호를 각각 생성하고, 일치하는 번호에 따라 등수를 확인하는 프로그램.
public static void ranNum(int[] arr, int cnt) {
for (int i = 0; i < cnt; i++) {
int randomNum = 0;
do {
randomNum = (int)(Math.random() * 45) + 1; // 1부터 45까지의 랜덤 숫자
} while (isNum(arr, randomNum, i));
arr[i] = randomNum;
}
}
랜덤 번호 생성 메서드 => 주어진 배열에 중복되지 않는 랜덤 번호를 생성하여 저장.
public static boolean isNum(int[] arr, int num, int len) {
for (int i = 0; i < len; i++) {
if (arr[i] == num) {
return true;
}
}
return false;
}
중복 체크 메서드 => 배열에 특정 숫자가 존재하는지 확인
public static void print(int[] arr) {
for (int i = 0; i < arr.length; i++) {
if (i == arr.length - 1 && arr.length == 7) {
System.out.print("[" + arr[i] + "]");
} else {
System.out.print(arr[i]);
if (i < arr.length - 1) {
System.out.print(" ");
}
}
}
System.out.println();
}
번호 출력 메서드 => 배열의 값 출력. 당첨번호의 마지막 번호(보너스)는 대괄호로 감싸서 표시
public static int checkRank(int[] user, int[] lotto) {
int matchCount = 0;
for (int i = 0; i < user.length; i++) {
if (isNum(lotto, user[i], lotto.length - 1)) {
matchCount++;
}
}
boolean bonus = isNum(lotto, user[user.length - 1], lotto.length);
if (matchCount == 6) {
return 1; // 1등
} else if (matchCount == 5 && bonus) {
return 2; // 2등
} else if (matchCount == 5) {
return 3; // 3등
} else if (matchCount == 4) {
return 4; // 4등
} else if (matchCount == 3) {
return 5; // 5등
} else {
return 0; // 꽝
}
}
등수 확인 메서드 => 사용자 번호와 당첨 번호를 비교, 일치하는 개수에 따라 등수를 리턴
public static void main(String[] args) {
int lotto[] = new int[7]; // 당첨번호
int user[] = new int[6]; // 사용자 로또 번호
// 당첨 번호 및 사용자 번호 생성
ranNum(lotto, 7);
ranNum(user, 6);
// 출력
System.out.print("당첨번호: ");
print(lotto);
System.out.print("사용자 번호: ");
print(user);
// 등수 확인
int rank = checkRank(user, lotto);
System.out.println(rank == 0 ? "꽝" : ("당첨 등수: " + rank + "등"));
}
메인 메서드 => 위에서 만든 메서드를 호출하여 로또 번호를 생성, 출력, 등수를 확인
결과
당첨번호: 3 15 23 34 42 7 [8]
사용자 번호: 3 15 22 34 9 1
당첨 등수: 3등
'백엔드 > Java' 카테고리의 다른 글
| Java 클래스(Class) (2) (1) | 2024.09.30 |
|---|---|
| Java 클래스(Class) (1) (0) | 2024.09.29 |
| Java로 계산기 만들기 (1) | 2024.09.28 |
| Java 메서드 (Method) (1) | 2024.09.26 |
| Java 배열, 문자열 처리 (2) | 2024.09.26 |