놀이동산 입장권 계산 프로그램
- Scanner 함수를 사용
- 다중 조건문을 이용하기 (if 및 조건문으로 케이스별로 나누기)
- 입장료는 나이와 기타 우대사항에 따라서 달라짐
- 3세미만은 무료 입장
- 복지카드 & 국가유공자 -> 일반할인가
- 13세 미만인 경우 & 17시 이후 입장 -> 특별할인가
- 중복할인은 불가능(일반할인과 특별할인 적용 대상이면 더 싼 특별할인 적용가로 결제)
문제 풀이
나이, 입장시간, 국가유공자 여부, 복지카드 여부에 따라 입장료가 달라짐
이에 대한 각각의 변수들 생성 필요
public class Practice3 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int age = 0; // 나이
int hour = 0; // 입장시간
String case1 = ""; // 국가유공자 여부
String case2 = ""; // 복지카드 여부
int[] prices = {10000, 4000, 8000}; // {기본, 특별할인, 일반할인}
System.out.print("/n/n");
System.out.println("[입장권 계산]");
// 필요한 정보들 입력 받기
System.out.println("나이를 입력해주세요.(숫자): ");
age = sc.nextInt();
System.out.println("입장시간을 입력해 주세요.(숫자입력): ");
hour = sc.nextInt();
System.out.println("국가유공자 여부를 입력해 주세요.(y/n): ");
case1 = sc.next();
System.out.println("복지카드 여부를 입력해 주세요.(y/n): ");
case2 = sc.next();
if (age < 3) {
// 무료 입장
System.out.println("입장료 : 무료");
} else if (age < 13 || hour > 17) {
// 특별 할인가 적용
System.out.printf("입장료 : %s", String.format("%4d", prices[1]));
} else if ("y".equalsIgnoreCase(case1) || ("y".equalsIgnoreCase(case2))) {
// 일반 할인가 적용
System.out.printf("입장료 : %s", String.format("%4d", prices[2]));
} else {
System.out.printf("입장료 : %s", String.format("%4d", prices[0]));
}
}
}
'제로베이스 백엔드 스쿨 > 미션' 카테고리의 다른 글
미니과제 6번 - 가상 선거 및 당선 시뮬레이션 프로그램 (0) | 2024.05.26 |
---|---|
미니과제 5번 - 달력 출력 프로그램 (0) | 2024.05.23 |
미니과제 4번 - 주민등록번호 생성 프로그램 (0) | 2024.05.23 |
미니과제 2번 - 결제 금액 캐시백 계산 프로그램 (0) | 2024.02.20 |
미니과제 1번 - 구구단 출력하기 (0) | 2024.02.19 |