에스제이

반응형

이번 포스트에서는 JAVA로 로또번호를 추출하는 방법에 대해서 알아보도록 하겠습니다.

평소처럼 인터넷 검색 중 로또번호를 추출하여 판매하는 사이트를 접하게 되었는데 문뜩 로또번호 추출 프로그램을 만들어보고 싶은 생각이 들었습니다. 프로그래머라면 한 번쯤은 누구나 구현해본다는 로또 번호 추출 프로그램 만드는 법에 대해서 알아보겠습니다.

 

로또번호를 추출하는방법은 Collections.shuffle(), Math.random()등 구현하는 방법은 다양합니다.

그중 간단히 구현할 수 있는 Math.random() 함수를 이용하여 구현해보겠습니다.

import java.util.Arrays;
import java.util.Scanner;

public class Lotto {
    public static void main(String[] args) {

        System.out.print("로또번호 추출 개수 : ");
		
        Scanner sc = new Scanner(System.in);
        int userNum = sc.nextInt();
		
        for (int i = 0; i <= userNum; i++) {
            System.out.println(i + "번째 :" + lottoNumbers());
        }
        sc.close();
    }
	
    static String lottoNumbers() {
        int []arr=new int[6];
        for (int i = 0; i < 6; i++) {
            arr[i]=(int)(Math.random()*45+1);
        }
 
        return Arrays.toString(arr);
    }	
}

사용자로부터 인자값을 전달받아 로또번호를 추출하도록 구현하였습니다. 하지만 이 코드는 완벽한 로또 추출 프로그램이 아닙니다. 5번째 출력 결과를 보면 숫자 9가 중복으로 추출되었음을 볼 수 있습니다. 6개의 번호가 각각 다른 숫자로 출력되어야 하지만 현재의 코드는 중복된 숫자가 나올 수 있습니다. 운이 좋다면 각각 다른 숫자가 나올 수 있지만 완벽한 로또 추출 프로그램을 위해 중복제거 및 번호 정렬 기능 코드를 추가하였습니다.

 

import java.util.ArrayList;
import java.util.Collections;
import java.util.HashSet;
import java.util.List;
import java.util.Scanner;
import java.util.Set;

public class Lotto {
    public static void main(String[] args) {

        System.out.print("로또번호 추출 개수 : ");
		
        Scanner sc = new Scanner(System.in);
        int userNum = sc.nextInt();
		
        for (int i = 0; i <= userNum; i++) {
            System.out.println(i + "번째 :" + lottoNumbers());
        }
        sc.close();
		
    }
	
    static String lottoNumbers() {
        Set<Integer>set = new HashSet<Integer>();
		
        while(set.size() != 6){
            set.add((int)(Math.random() * 45 + 1));
        }
		
        List<Integer> list = new ArrayList<Integer>(set);
        Collections.sort(list);
 
       return list.toString();
    }
	
}

이상으로 JAVA를 활용하여 로또 번호 추출 프로그램을 만들어보았습니다.

정독해주셔서 감사합니다. :)

반응형

공유하기

facebook twitter kakaoTalk kakaostory naver band