#로또 번호 생성기 ## CODE <a class='btn btn-default' href='/codes/11261'>Link</a> ``` import java.util.ArrayList; import java.util.Random; public class Lotto { public static void main(String[] args) { // 객체 생성 LottoMachine machine = new LottoMachine(); // 번호 생성 int[] arr = machine.generate(); // 결과 출력 System.out.print("생성 번호: "); for (int i = 0; i < arr.length; i++) { System.out.printf("%d ", arr[i]); } } } class LottoMachine { // 필드 private ArrayList<Integer> numbers; // 생성자 public LottoMachine() { numbers = new ArrayList<Integer>(); /* 1. 번호(1 ~ 45)를 추가하세요. */ for(int i = 0; i < 46; i++) { numbers.add(i); } } // 메소드 public int[] generate() { int[] pickedNumbers = new int[6]; Random rand = new Random(); /* 2. 임의의 숫자 6개를 추출하세요. */ for(int i = 0; i < pickedNumbers.length; i++) { pickedNumbers[i] = numbers.remove(rand.nextInt(numbers.size())); } return pickedNumbers; } } ``` ## INPUT ``` ``` ## OUPUT ``` 생성 번호: 21 40 44 36 14 26 ``` pickedNumbers[i] = numbers.remove(rand.nextInt(numbers.size())); 이 부분 질문드립니다. numbers.remove는 해당 부분의 값을 제거하는건데 numbers.remove(rand.nextInt(numbers.size()))을 실행 후 만약 20이라는 숫자가 나와서 pickedNumbers[i]에 대입되면서 제거되는건가요 ? 이렇게 하면 중복을 번호 생성이 방지 되는게 맞나요 ?
# 네, 맞습니다. 정확히 이해하고 계시네요~ Good!