[참고] 로또 6/45소개
https://dhlottery.co.kr/gameInfo.do?method=gameMethod
로또 6/45소개 < 로또 6/45 < 복권정보 | 동행복권
로또 6/45의 특징 로또는 온라인복권입니다. 온라인복권이란 복권 발행시스템을 갖춘 중앙전산센터와 정보통신망으로 연결된 단말기를 통해 복권의 발행 및 판매가 이루어지는 복권으로 인터넷
dhlottery.co.kr
(로또 공식명칭이 로또 6/45인줄 처음 알았다...)
Java ArrayList, Math random을 이용해 로또 자동 5천원어치 번호 추천기를 만들었다.
먼저 기본적인 로또 구매의 규칙은 다음과 같다.
1. 한 게임(세트)에 선택할 수 있는 숫자는 1~45 이다.
2. 한 게임에서 선택할 수 있는 숫자는 총 6개이다.
3. 한 게임에 중복된 숫자를 선택할 수 없다.
그리고 우리는 5천원 어치 자동으로 구매할 것이므로 위 규칙을 지킨 세트를 5번 반복하면 된다.
소스와 실행결과는 아래와 같다.
[전체 소스]
import java.util.*;
public class Lottery {
public static void main(String[] args) {
/* 1. 총 5세트로 5회 반복 */
for (int o = 0; o < 5; o++) {
/* 2. ArrayList와 Random class 선언 및 초기화 */
ArrayList<Integer> list = new ArrayList<Integer>();
Random random = new Random();
/* 3. 현재 세트 출력 */
System.out.print("[");
System.out.print(o+1);
System.out.print(" set] ");
/* 4. 한 세트에 6개의 숫자 들어감, 6개 완성 시 다음 세트 */
while (list.size() < 6) {
/* 5. 1~45 사이의 랜덤 숫자 생성 */
int temp = random.nextInt(45)+1;
/* 6. 랜덤 숫자가 이미 리스트에 포함되어있는 경우 추가하지 않고 지나간다 */
if(!list.contains(temp)) {
list.add(temp);
}
}
/* 7. 오름차순으로 정렬 */
Collections.sort(list);
/* 8. 현 세트에 들어간 6개의 숫자들 출력 */
System.out.println(list);
}
}
}
[실행 결과]
| [1 set] [3, 4, 6, 26, 28, 45] [2 set] [6, 7, 9, 27, 29, 31] [3 set] [3, 17, 23, 25, 31, 44] [4 set] [2, 5, 12, 16, 24, 35] [5 set] [2, 5, 23, 27, 28, 35] |