카테고리 없음

java ArrayList를 이용한 로또 자동 5천원어치 번호 추천기

ozzie 2021. 5. 19. 13:42

[참고] 로또 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]