이번 포스트에서는 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를 활용하여 로또 번호 추출 프로그램을 만들어보았습니다.
정독해주셔서 감사합니다. :)
[JAVA] User-Agent를 통해서 PC/MOBILE 구분하는 방법 (0) | 2022.11.01 |
---|---|
[JAVA] UUID 클래스 고유식별자, RANDOM 데이터 추출 (0) | 2022.05.10 |
[JAVA] 문자열 마지막 콤마 제거하기(꿀팁) (0) | 2022.01.18 |
[JAVA] 문자열 대소문자로 변환하는 가장 쉬운 방법(꿀팁) (0) | 2022.01.17 |
[JAVA] 줄바꿈(개행문자) 처리, 모든 OS 한번에 적용하는 방법 (0) | 2022.01.16 |