배열, 중복 없이 오름차순으로 정렬된 로또번호 출력
package day0110;
// 로또번호 추첨기
// ver 1.0
// 배열 없이 만들어보자
// 1. 정렬되어야 함.
// 2. 중복 없어야 함.
import java.util.Random;
public class Ex08Lotto01 {
public static void main(String[] args) {
Random random = new Random();
int num1, num2, num3, num4, num5, num6;
// 1. 첫번째 숫자 결정하기
num1 = random.nextInt(45) + 1;
// 2. 두번째 숫자 결정하기
int temp = random.nextInt(45) + 1;
while(num1 == temp){
temp = random.nextInt(45) + 1;
}
if(num1 < temp){
num2 = temp;
} else {
num2 = num1;
num1 = temp;
}
// 3. 세번째 숫자 결정하기
temp = random.nextInt(45) + 1;
while(num1 == temp || num2 == temp){
temp = random.nextInt(45) + 1;
}
if(num2 < temp){
num3 = temp;
} else if(num1 < temp){
num3 = num2;
num2 = temp;
} else {
num3 = num2;
num2 = num1;
num1 = temp;
}
// 4. 네번째 숫자 결정하기
temp = random.nextInt(45) + 1;
while(num1 == temp || num2 == temp || num3 == temp){
temp = random.nextInt(45) + 1;
}
if(num3 < temp){
num4 = temp;
} else if(num2 < temp){
num4 = num3;
num3 = temp;
} else if(num1 < temp){
num4 = num3;
num3 = num2;
num2 = temp;
} else {
num4 = num3;
num3 = num2;
num2 = num1;
num1 = temp;
}
// 5. 다섯번째 숫자 결정하기
temp = random.nextInt(45) + 1;
while(num1 == temp || num2 == temp || num3 == temp || num4 == temp){
temp = random.nextInt(45) + 1;
}
if(num4 < temp){
num5 = temp;
} else if(num3 < temp){
num5 = num4;
num4 = temp;
} else if(num2 < temp){
num5 = num4;
num4 = num3;
num3 = temp;
} else if(num1 < temp){
num5 = num4;
num4 = num3;
num3 = num2;
num2 = temp;
} else {
num5 = num4;
num4 = num3;
num3 = num2;
num2 = num1;
num1 = temp;
}
// 6. 여섯번째 숫자 결정하기
temp = random.nextInt(45) + 1;
while(num1 == temp || num2 == temp || num3 == temp || num4 == temp || num5 == temp){
temp = random.nextInt(45) + 1;
}
if(num5 < temp){
num6 = temp;
}else if(num4 < temp){
num6 = num5;
num5 = temp;
} else if(num3 < temp){
num6 = num5;
num5 = num4;
num4 = temp;
} else if(num2 < temp){
num6 = num5;
num5 = num4;
num4 = num3;
num3 = temp;
} else if(num1 < temp){
num6 = num5;
num5 = num4;
num4 = num3;
num3 = num2;
num2 = temp;
} else {
num6 = num5;
num5 = num4;
num4 = num3;
num3 = num2;
num2 = num1;
num1 = temp;
}
System.out.printf("%d, %d, %d, %d, %d, %d\n", num1, num2, num3, num4, num5, num6);
}
}
불편 사항 :
정렬할 때마다 모든 이전 숫자들과 대소비교 실행
모든 이전 숫자들과 번호가 같은지 확인해야함
반복되는 구문
// 6. 여섯번째 숫자 결정하기
temp = random.nextInt(45) + 1;
while(num1 == temp || num2 == temp || num3 == temp || num4 == temp || num5 == temp){
temp = random.nextInt(45) + 1;
}
if(num5 < temp){
num6 = temp;
}else if(num4 < temp){
num6 = num5;
num5 = temp;
} else if(num3 < temp){
num6 = num5;
num5 = num4;
num4 = temp;
} else if(num2 < temp){
num6 = num5;
num5 = num4;
num4 = num3;
num3 = temp;
} else if(num1 < temp){
num6 = num5;
num5 = num4;
num4 = num3;
num3 = num2;
num2 = temp;
} else {
num6 = num5;
num5 = num4;
num4 = num3;
num3 = num2;
num2 = num1;
num1 = temp;
}
'JX405기_비트 > Java' 카테고리의 다른 글
| Day02-9 Lotto 추첨기 ver 3.0 - 자동 추첨과 사용자 입력을 통한 수동 추첨 / 컴퓨터 추첨으로 일치한 갯수 출력 (0) | 2023.01.15 |
|---|---|
| Day02-8 Lotto 번호 생성기 (배열 사용) (0) | 2023.01.15 |
| Day 02-6 Random 클래스 (0) | 2023.01.15 |
| Day02-5 Array 배열 (0) | 2023.01.15 |
| Day02-4 전역 상수를 활용한 학생 관리 프로그램 작성 (0) | 2023.01.12 |