1. 코드를 말로 푼거
package ex03;

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 == false (공 집어넣기 - 3번부터 다시 시작)

        for (int i = 0; i < 6; i++) {
            //공을 꺼내서 첫 번째 자리에 추가
            if (i == 0) {
                num = r.nextInt(45) + 1;
                arr[i] = num;
                continue;
            }

            while (true) {
                // 1. 공을 꺼내기
                isSame = false;
                num = r.nextInt(45) + 1;

                /**
                 * 2. 이전 번호들과 비교
                 * i == 1 (0 비교)
                 * i == 2 (1, 0 비교)
                 * i == 3 (2, 1, 0 비교)
                 * ...
                 */
                for (int j = i - 1; j >= 0; j--) {
                    if (arr[j] == num) {
                        isSame = true;
                        break;
                    }
                }

                //3. 동일한 번호가 없을때 값 추가하기
                if (!isSame) {
                    arr[i] = num;
                    break;
                }
            }
        }

        System.out.println(Arrays.toString(arr));
    }
}
  1. 코드를 이쁘게 바꿈
package ex03;

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));
    }
}
package ex03;

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 + "원");
    }
}