It Study/코딩테스트 연습

프로그래머스 lv0 - 양꼬치

prlkt5200 2024. 9. 17. 23:04
반응형

아직 갈 길은 멀지만 문제를 풀다보면 실력이 늘어가겠죠?? 빨리 lv3 문제도 자유로이 풀 수 있었음 합니다 ㅎㅎ

class Solution {
    public int solution(int n, int k) {
    //10인분에 음료 1개 추가
        int service = (n/10);
        int totalPay =0;
        return totalPay =(n*12000)+((k-service)*2000);
    }
}

 

 

아래는 다른 사람의 풀이입니다. 객체지향의 기본을 잘보여주는데다, enum을 활용하는 것도 인상적이었습니다.

class Solution {
    public int solution(int n, int k) {
        int lambTotalPrice = totalPrice(Menu.LAMB, n);
        int drinkTotalPrice = totalPrice(Menu.DRINK, k);
        int discountPrice = discount(Menu.DRINK, n);

        int totalPay = lambTotalPrice + drinkTotalPrice - discountPrice;
        return totalPay;
    }

    private int totalPrice(Menu menu, int quantity) {
     return menu.getPrice() * quantity;   
    }

    private int discount(Menu menu, int lambQuantity) {
        // 양꼬치 10인분에 음료수 하나
        int point = lambQuantity / 10;

        return menu.getPrice() * point;
    }
}

enum Menu {

    LAMB("양꼬치", 12000),
    DRINK("음료수", 2000);

    private final String name;
    private final int price;

    Menu(String name, int price) {
        this.name = name;
        this.price = price;
    }

    public String getName() {
        return name;
    }

    public int getPrice() {
        return price;
    }
}
반응형