본문 바로가기

제로베이스 백엔드 스쿨/미션

미니과제 3번 - 놀이공원 입장료 계산하기

 

놀이동산 입장권 계산 프로그램

- 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]));
        }
    }
}