씨네
공부하는 개발자 강씨네
씨네
  • 분류 전체보기 (460)
    • Web (21)
      • HTML (11)
      • CSS (10)
    • JS 관련 (49)
      • JavaScript (27)
      • JQuery (22)
    • TS 관련 (15)
      • TypeScript (15)
    • NodeJS (7)
      • NodeJS (7)
    • 따라하며 배우는 시리즈 (23)
      • NodeJS & ReactJS Basic (23)
      • NodeJS & ReactJS Movie (0)
      • NodeJS & ReactJS Youtube (0)
      • NodeJS & ReactJS ChatBot (0)
    • SPA (14)
      • React (14)
      • Vue (0)
      • Anguler (0)
    • Java 관련 (118)
      • Java (52)
      • JDBC (6)
      • JSP & Servlet (18)
      • Spring Legecy (38)
      • SpringBoot (4)
    • Python (26)
      • Python (20)
      • PyMongo (1)
      • Django (5)
    • Git (24)
      • Github (24)
    • RDB (22)
      • Oracle (21)
      • MySQL (1)
    • NoSQL (5)
      • MongoDB (5)
    • OS (4)
      • Linux (4)
    • 빅데이터 (2)
      • hadoop (2)
    • IDE (20)
      • eclipse (11)
      • VSCODE (4)
      • VisualStudio (1)
      • IntelliJ (1)
      • PyCharm (1)
      • DBeaver (2)
    • Install (3)
      • Tomcat (1)
      • Docker (1)
      • Anaconda (1)
    • 오류&에러 (28)
      • TS (2)
      • NodeJS (7)
      • SQL (8)
      • Java (1)
      • Spring (4)
      • Git (6)
      • 기타 (0)
    • 알고리즘 (67)
      • 수열 (1)
      • 백준(backjoon) (39)
      • Programmers (27)
    • 자격증 (5)
      • SQLD (5)
    • 기타 (2)
    • IT유튜브로 지식쌓기 (2)

공지사항

인기 글

최근 글

티스토리

250x250
hELLO · Designed By 정상우.
씨네

공부하는 개발자 강씨네

[Java] Random()을 이용한 로또 코드(lotto code)
Java 관련/Java

[Java] Random()을 이용한 로또 코드(lotto code)

2021. 10. 20. 07:27
728x90


Random()은 숫자가 랜덤으로 나오게 해주는 클래스로 Scanner()와 사용방법은 거의 비슷합니다.

java.util.Random을 import 해주고 new 키워드를 사용해 객체를 생성 후 사용 가능합니다.

package com.test01; 
 
import java.util.Random; 

public class MTest{ 
  public static void main(String[] args) { 
    Random rd = new Random(); 
    System.out.println(rd.nextInt(100)); 
  }
}

해당 코드를 출력하면 0부터 99까지의 숫자 100가지를 랜덤으로 출력시킵니다.

​

그리고 java.lang.Math 클래스를 이용해서 랜덤 숫자를 뽑아내는 방법도 있는데요.

간단하게 알아보겠습니다.

​

double ran = Math.random(); 
System.out.println(ran); // 0 <= ran < 1의 실수값이 나옴 
int min = 20; 
int max = 30; 

//(int)(Max.random() * (max - min + 1)) + min; 
//min ~ max(max 포함) 
int rd = (int)(Math.random() * (max - min + 1)) + min; 
System.out.println("random : " + rd);

​

위의 코드는 20부터 30까지의 값을 랜덤으로 출력시키는 코드입니다.

0부터 1사이의 숫자를 랜덤으로 발생시키는 Math.random()에 최대로 나오게 할 수에 최소로 나오게 할 수를 빼고 곱하고 인트 형으로 변환을 해준 다음 최솟값을 더해주면 원하는 범위의 숫자를 랜덤으로 하게 나올 수 있습니다.

하지만 중간에 1을 더해주지 않으면 최댓값이 나오지 않습니다.

그렇기에 1을 더해주는 것입니다.


지금까지 알아본 개념과 Random을 통해 로또 코드를 코딩할 수 있는데요.

코드를 한번 알아보겠습니다.

int[] lot = new int [6]; 
Random num = new Random(); 

//중복제거 
for(int i = 0; i < lot.length; i++) { 
  lot[i] = num.nextInt(45)+1; 
  for(int j = 0; j < i; j++) { 
    if(lot[i] == lot[j]) { 
      i--;
    }
  }
} 

//정렬 
for(int i = 0; i < lot.length; i++) { 
  for(int j = 0; j < i;j++) { 
    if(lot[j] > lot[i]) { 
      a = lot[i]; lot[i] = lot[j]; lot[j] = a; 
    }
  }
}

//출력
for(int i = 0; i < lot.length; i++) { 
	System.out.printf("%d ", lot[i]); 
}

​

먼저 1부터 45사이의 난수를 6개 출력시키고 중복된 수를 제거합니다.

그다음 작은 수부터 차례로 정렬합니다.

마지막은 정렬된 코드를 출력합니다.

728x90

'Java 관련 > Java' 카테고리의 다른 글

[Java] 인터페이스(Interface)  (0) 2021.10.23
[Java] 메소드(method)  (0) 2021.10.22
[Java] 얖은값 복사(Shallow copy), 깊은값 복사(Deep copy)  (1) 2021.10.19
[Java] 배열(Array)  (0) 2021.10.18
[Java] Scanner()  (0) 2021.10.17
    'Java 관련/Java' 카테고리의 다른 글
    • [Java] 인터페이스(Interface)
    • [Java] 메소드(method)
    • [Java] 얖은값 복사(Shallow copy), 깊은값 복사(Deep copy)
    • [Java] 배열(Array)
    씨네
    씨네
    개발자 씨네가 공부하는 내용을 기록 겸 공유하는 블로그입니다!

    티스토리툴바