목표
- 1~45 사이의 숫자 중 6개의 무작위 번호를 생성.
 
- 중복되지 않도록 숫자를 배열에 추가.
 
핵심 기능
Contains를 이용한 중복 확인. 
Add Unique를 활용한 간단한 중복 제거. 
Shuffle을 이용한 무작위 섞기 후 추출. 
1. Contains 사용하기
구현 설명
- 
While Loop:
Numbers 배열의 길이가 6이 될 때까지 반복. 
- 조건: 배열의 길이가 6보다 작은 경우에만 반복.
 
 
- 
Random Integer in Range:
 
- 
Contains 노드:
- 생성된 숫자가 이미 배열에 있는지 확인.
 
- True: 배열에 존재 → 추가하지 않음.
 
- False: 배열에 존재하지 않음 → 배열에 추가.
 
 
- 
Set Array Elem:
- 중복되지 않는 숫자를 배열의 특정 인덱스에 추가.
 
Size to Fit 체크를 통해 배열이 자동으로 확장되도록 설정. 
 
장점
- 중복을 명시적으로 체크하여 제어 가능.
 
- 코드가 직관적이며 디버깅이 용이.
 
단점
- While Loop를 사용하기 때문에 제어식 조건을 명확히 설정해야 함. 무한 루프 발생 가능.
 
2. Add Unique 사용하기
구현 설명
- 
While Loop:
Numbers 배열의 길이가 6이 될 때까지 반복. 
- 조건: 배열 길이가 6보다 작으면 반복.
 
 
- 
Random Integer in Range:
 
- 
Add Unique:
- 숫자를 배열에 추가하려 할 때, 이미 배열에 존재하면 추가하지 않음.
 
- 중복 체크를 자동으로 처리.
 
 
장점
Contains와 같은 중복 체크 없이도 간단히 구현 가능. 
- 노드 수가 줄어들어 블루프린트가 간결해짐.
 
단점
- 내부적으로 중복을 체크하기 때문에 효율성이 약간 떨어질 수 있음.
 
3. Shuffle 사용하기
구현 설명
- 
Temp 배열 생성:
 
- 
Shuffle 노드:
 
- 
For Loop:
- 섞인 Temp 배열에서 첫 6개의 숫자를 Numbers 배열에 추가.
 
 
장점
- 중복 체크를 하지 않아도 무작위로 섞인 배열에서 숫자를 가져오기 때문에 간단.
 
- 구현이 직관적이고 성능도 효율적.
 
단점
- Shuffle 과정을 이해하지 못하면 코드를 읽는 데 시간이 걸릴 수 있음.
 
전체 로직의 흐름
- 
Event Begin Play:
 
- 
Print Numbers:
 
- 
번호 생성 로직:
Contains, Add Unique, 또는 Shuffle 중 하나의 방법을 사용하여 Numbers 배열에 중복 없는 번호를 추가. 
 
- 
출력 결과:
- Numbers 배열에 담긴 6개의 로또 번호를 확인.
 
 
비교 및 추천
| 방법 | 장점 | 단점 | 
|---|
| Contains 사용하기 | 중복 체크 과정을 명시적으로 제어 가능. | 노드가 많아지며 복잡도가 증가. | 
| Add Unique 사용하기 | 간단하고 코드가 간결. | 내부 중복 체크로 성능 약간 저하. | 
| Shuffle 사용하기 | 가장 효율적이고 간단한 구현. | Temp 배열 생성과 섞기 과정이 필요. |