[JAVA] "자동이요" 자바로 로또번호 자동뽑기

Dec 19, 2023
[JAVA] "자동이요" 자바로 로또번호 자동뽑기
로또를 만드는 건 조금은 복잡하다.
  1. 6개의 수를 저장하는 배열 선언
  1. 1 - 45의 랜덤한 수를 넣기
  1. 중복된 수인지 구분하기
현실에서는 중복된 수를 제외한 후 랜덤으로 뽑으면 되겠지만, 컴퓨터에서는 중복된 수가 있는지 확인한 후 일일이 비교하고, 같다면 다시 뽑는 방식으로 진행한다.
 
LottoEX01
import java.util.Arrays; import java.util.Random; public class LottoEx01 { public static void main(String[] args) { int arr[] = new int[6]; Random r = new Random(); int num; for (int i = 0; i < arr.length; i++) { if (i == 0) { num = r.nextInt(45) + 1; arr[i] = num; } else { while (true) { num = r.nextInt(45) + 1; arr[i] = num; for (int j = 0; j < i; j++) { if (arr[i] == arr[j]) { i--; break; } } break; } } } System.out.println(Arrays.toString(arr)); } }
 
LottoEx02
import java.util.Arrays; import java.util.Random; public class LottoEx02 { public static void main(String[] args) { int arr[] = new int[6]; Random r = new Random(); int num; boolean isSame; /** * 1. 6바퀴 돌면서 로또 번호를 추첨할 예정 * 2. 첫번 째 바퀴에서는 그대로 입력 * 3. 두번째 바퀴부터는 이전에 추첨한 모든 번호와 비교 (isSame) * 4. isSame == true (3번부터 다시 시작) * 5. isSame == faluse (추첨 번호 집어넣기 - 3번부터 다시 시작) */ for (int i = 0; i < 6; i++) { if (i == 0) { num = r.nextInt(45) + 1; arr[i] = num; continue; } while (true) { isSame = false; num = r.nextInt(45) + 1; /** * i == 1 (0과 비교) * i == 2 (0, 1 비교) * i == 3 (0, 1, 2 비교) */ for (int j = i; j >= 0; j--) { if (arr[j] == num) { isSame = true; break; } } // 중복된 번호가 없을 때 값 추가 if (!isSame) { arr[i] = num; break; } } } System.out.println(Arrays.toString(arr)); } }
 
LottoEx03
import java.util.Arrays; import java.util.Random; public class LottoEx03 { public static void main(String[] args) { int arr[] = new int[6]; Random r = new Random(); int num; for (int i = 0; i < 6; i++) { num = r.nextInt(45) + 1; arr[i] = num; for (int j = i - 1; j >= 0; j--) { if (arr[j] == num) { i --; break; } } } System.out.println(Arrays.toString(arr)); } }
 
로또 자동추첨으로 당첨될 때까지 얼마의 금액이 필요할까?
import java.util.Arrays; import java.util.Random; public class LottoGame { static int[] 로또구매() { int arr[] = new int[6]; Random r = new Random(); int num; for (int i = 0; i < 6; i++) { num = r.nextInt(45) + 1; arr[i] = num; for (int j = i - 1; j >= 0; j--) { if (arr[j] == num) { i--; break; } } } Arrays.sort(arr); return arr; } static int[] 로또추첨() { int arr[] = new int[6]; Random r = new Random(); int num; for (int i = 0; i < 6; i++) { num = r.nextInt(45) + 1; arr[i] = num; for (int j = i - 1; j >= 0; j--) { if (arr[j] == num) { i--; break; } } } Arrays.sort(arr); return arr; } static boolean 로또당첨확인(int[] buy, int[] lotto) { boolean isCorrect = true; for (int i = 0; i < 6; i++) { if (buy[i] != lotto[i]) { isCorrect = false; } } return isCorrect; } public static void main(String[] args) { int[] lotto = 로또추첨(); System.out.println("추첨한 로또 번호 : " + Arrays.toString(lotto)); long money = 0; while (true) { money = money + 1000; int[] buy = 로또구매(); if (로또당첨확인(buy, lotto)) { System.out.println("구매한 로또 번호 : " + Arrays.toString(buy)); break; } } System.out.println("로또 구매시 사용된 금액 : " + money + "원"); } }
Share article

MiracleCoding