[Java] 40. 로또

백하림's avatar
Feb 11, 2025
[Java] 40. 로또

1. ArrayList (지금은 외우기)

// 배열 vs 컬렉션 // int -> Integer // double -> Double // String은 그대로 ArrayList<Integer> arr = new ArrayList(); // 배열 추가 : 배열 이름.add arr.add(1); arr.add(3); arr.add(5); // 배열 출력 : 배열 이름.get System.out.println(arr.get(0)); System.out.println(arr.get(1)); System.out.println(arr.get(2));

2. 노가다 코드

package algo; import java.util.Random; public class Lotto01 { public static void main(String[] args) { // 1. 랜덤 함수, 배열 선언 Random rand = new Random(); int[] arr = new int[6]; // 2. 로또 번호 받기 int n; // 1회전 n = 30; arr[0] = n; // 2회전 n = 27; arr[1] = n; // 3회전 n = 20; arr[2] = n; // 4회전 n = 17; arr[3] = n; // 5회전 n = 13; arr[4] = n; // 6회전 n = 2; arr[5] = n; System.out.println(arr[0] + "," + arr[1] + "," + arr[2] + "," + arr[3] + "," + arr[4] + "," + arr[5]); } }
notion image

3. 랜덤값 가져오기

package algo; import java.util.Random; public class Lotto01 { public static void main(String[] args) { // 1. 랜덤 함수, 배열 선언 Random rand = new Random(); int[] arr = new int[6]; // 2. 로또 번호 받기 for (int i = 0; i < arr.length; i++) { // 랜덤하게 나온 수를 arr[i]에 저장 (i = 번지수) arr[i] = rand.nextInt(45) + 1; // 0부터 44까지 나온 수에 +1을 하면 1부터 45가 된다. (범위 지정) } // 출력 System.out.println(arr[0] + "," + arr[1] + "," + arr[2] + "," + arr[3] + "," + arr[4] + "," + arr[5]); } }
notion image

4. 버블 정렬 사용(오름차순으로 정렬)

package algo; import java.util.Random; public class Lotto01 { public static void main(String[] args) { // 1. 랜덤 함수, 배열 선언 Random rand = new Random(); int[] arr = new int[6]; // 2. 로또 번호 받기 for (int i = 0; i < arr.length; i++) { // 랜덤하게 나온 수를 arr[i]에 저장 (i = 번지수) arr[i] = rand.nextInt(45) + 1; // 0부터 44까지 나온 수에 +1을 하면 1부터 45가 된다. (범위 지정) } // 정렬 Util.bubble(arr); //Util.bubble(배열이름) // 출력 System.out.println(arr[0] + "," + arr[1] + "," + arr[2] + "," + arr[3] + "," + arr[4] + "," + arr[5]); } }
notion image

5. 중복 제거

package algo; import java.util.Random; public class Lotto04 { public static void main(String[] args) { // 1. 랜덤 함수, 배열 선언 Random rand = new Random(); int[] arr = new int[6]; // 2. 로또 번호 받기 for (int a = 0; a < 5; a++) { // 출력문을 반복하기 위한 for문 작성 for (int i = 0; i < arr.length; i++) { // 배열의 길이만큼 반복 // 랜덤하게 나온 수를 arr[i]에 저장 (i = 인덱스) arr[i] = rand.nextInt(45) + 1; // 0부터 44까지 나온 수에 +1을 하면 1부터 45가 된다. (범위 지정) for (int j = 0; j < i; j++) { // i와 j는 인덱스 if (arr[i] == arr[j]) { // 만약 i 인덱스의 수와 j 인덱스의 수가 같다면 i--; // i를 감소시켜 i 인덱스에 다시 숫자를 생성 break; // break 문이 없으면, 내부 루프가 끝까지 실행되어 불필요한 반복이 발생 } } } // 정렬 Util.bubble(arr); //Util.bubble(배열이름) // 출력 System.out.println(arr[0] + "," + arr[1] + "," + arr[2] + "," + arr[3] + "," + arr[4] + "," + arr[5]); } } }
notion image
Share article

harimmon