[ 문제 ]
미니 로또 당첨 프로그램
1. 자신의 찍을 번호 6개 입력 (중복된 값 x, 1 ~ 45의 정수)
2. 입력한 번호를 오름차순으로 출력 후 구매 의사 재 확인
ex)입력하신 번호는 [1, 3, 14, 21, 33, 34] 입니다. 구매하시겠습니까? (y/n)
3. 로또 번호 자동 조회 여부 확인(y/n)
4. 조회 시 이번 주 로또 당첨 번호 출력
5. 몇 등인지, 해당 등수에 따른 금액이 얼마인지 출력
등수
6개 — 1등
5개 — 2등
4개 — 3등
3개 — 4등
2개 — 5등
수령 금액 (실제 수령 금처럼 매번 랜덤으로 지급)
1등 - 십억 원 ~ 이십억 원 (억 단위로 지급)
2등 - (이천만 원 ~ 오천만 원) (천만 원 단위로 지급)
3등 - (백만 원 ~ 삼백만 원) (십만 원 단위로 지급)
4등 - (오만 원)
5등 - (오천 원)
6. 프로그램 종료
import java.sql.Time;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
import java.util.Set;
import java.util.TreeSet;
public class Lotto {
public static void main(String[] args) {
/* 내 로또 번호 고르기 */
Scanner sc = new Scanner(System.in);
Set<Integer> myLotto = new TreeSet<>();
while(true) {
System.out.println("로또 번호를 하나씩 입력하시오."); // 로또 구매
int num = sc.nextInt();
if(myLotto.contains(num)) { // 중복값 입력 불가
System.out.println("중복된 값이 있습니다. 다시 선택하세요");
} else if(num > 45) {
System.out.println("로또 번호는 45를 초과할 수 없습니다. 다시 선택하세요"); // 45 이상의 정수 입력 불가
} else if(num < 1) {
System.out.println("로또 번호는 1보다 작을 수 없습니다. 다시 선택하세요"); // 1 이하의 정수 입력 불가
} else {
myLotto.add(num);
}
if(myLotto.size() > 5) break;
}
/* 로또 번호 구애 여부 확인 */
System.out.println("당신의 로또 번호는 "+ myLotto + " 입니다.");
sc.nextLine();
while(true) {
System.out.println("해당 번호로 구매하시겠습니까? (Y/N)"); // 구매 여부 확인
char buy = sc.nextLine().charAt(0);
if(buy == 'y' || buy =='Y') {
System.out.println("성공적으로 구매 완료");
break;
} else if(buy == 'n' || buy == 'N') { // N 선택 시 프로그램 종료
System.out.println("새로운 번호로 다시 구매해주세요.. \\n프로그램을 종료합니다.");
return;
} else { // 다른 값 입력 시 재질문
System.out.println("잘못 입력했습니다. 'y' 혹은 'n'으로 입력해주세요");
continue;
}
}
/* 로또 번호 자동/수동 조회 선택 */
while(true) {
System.out.println("이번주 로또추첨이 완료되었습니다.. 조회하시겠습니까? (Y/N)"); // 자동조회 여부 확인
char check = sc.nextLine().charAt(0);
if(check == 'y' || check =='Y') {
break;
} else if(check == 'n' || check == 'N') { // 'n' 선택 시 프로그램 종료
System.out.println("수동으로 조회하세요. \\n프로그램을 종료합니다.");
return;
} else { // 다른 값 입력 시 재질문
System.out.println("잘못 입력했습니다. 'y' 혹은 'n'으로 입력해주세요");
continue;
}
}
/* 이번 주 로또 번호 추첨 */
Set<Integer> lottoNum = new TreeSet<>();
while(true) {
lottoNum.add((int)(Math.random()*45) +1);
if(lottoNum.size() > 5) break;
}
System.out.println("이번주 로또 당첨 번호는 " + lottoNum +" 입니다. \\n");
/* 내 로또번호와 일치하는 개수 확인 */
int result = 0;
for(Integer i : myLotto) {
for(Integer j : lottoNum) {
if(i==j) {
result++;
break;
}
}
}
/* 이번주 당첨금 출력*/
int one = ((int)(Math.random()*10)+10); // 1 ~ 3등 당첨금 지정범위 내에서 랜덤 지급
int two = ((int)(Math.random()*4)+ 2);
int three = ((int)(Math.random()*3)+ 1);
System.out.println("------------------------------------");
System.out.println("이번주의 1등 당첨금은 " + one + "억원" );
System.out.println("이번주의 2등 당첨금은 " + two + "천만원" );
System.out.println("이번주의 3등 당첨금은 " + three + "백만원" );
System.out.println("이번주의 4등 당첨금은 5만원");
System.out.println("이번주의 5등 당첨금은 5천원");
System.out.println("------------------------------------\\n");
/* 로또 결과 알려주기 */
switch(result) {
case 6: System.out.println("축하합니다!! 당신은 1등에 당첨되었습니다.");
System.out.println("1등 당첨금은 " + one + "억원" );
case 5: System.out.println("축하합니다!! 당신은 2등에 당첨되었습니다.");
System.out.println("등 당첨금은 " + two + "천만원" );
case 4: System.out.println("축하합니다!! 당신은 3등에 당첨되었습니다.");
System.out.println("3등 당첨금은 " + three + "백만원" );
case 3: System.out.println("축하합니다!! 당신은 4등에 당첨되었습니다.");
System.out.println("4등 당첨금은 5만원 입니다!!!!");
case 2: System.out.println("축하합니다!! 당신은 5등에 당첨되었습니다.");
System.out.println("5등 당첨금은 5천원 입니다!!!!");
break;
default :
System.out.println("아쉽지만 이번주는 꽝입니다....");
}
System.out.println("\\n프로그램을 종료합니다.. 다음주에도 이용해주세요~"); // 프로그램 종료
}
}