[Kotlin/프로그래머스] 양꼬치

문제

머쓱이네 양꼬치 가게는 10인분을 먹으면 음료수 하나를 서비스로 줍니다. 양꼬치는 1인분에 12,000원, 음료수는 2,000원입니다. 정수 n과 k가 매개변수로 주어졌을 때, 양꼬치 n인분과 음료수 k개를 먹었다면 총얼마를 지불해야 하는지 return 하도록 solution 함수를 완성해보세요

 

풀이

class Solution {
    fun solution(n: Int, k: Int): Int {
        
        var sheep: Int = n*12000
        var drink: Int = k*2000
        if(n >= 10){
            var bonus: Int = (n/10) * 2000
            drink -= bonus
        }
        
        return (sheep+drink)
    }
}

 

처음에 조건을 잘못 보고 서비스 음료가 있는지 몰라서 틀렸다.

가장 먼저 떠오른 방법은 우선 계산을 모두 하고, if 조건문을 통해 10인 분 이상 주문시, 나누기(몫)을 구해서 빼주는 방식으로 계산했다.

 

문제를 풀고나서 다른사람 풀이를 구경하는 것도 재미있는 것 같다. 나같은 경우는 변수명으로 sheep 을 사용했는데 생각해보니까 먹는 양고기면 어린 양고기를 쓰는곳이 많으니 lamb 가 더 적절할 것 같기도 하고.. 또 심플하게 한줄로 풀이하신 분들도 많았다.

 

class Solution {
    fun solution(n: Int, k: Int) = n * 12000 + k * 2000 - ((n / 10) * 2000)
}

약 17명 정도가 위와 같은 풀이를 사용했다고 한다. 뭐 결과적으론 내가 풀이한 방법과 동일하긴 하지만 ㅎㅅㅎ

코드는 효율적이고, 짧은 것도 좋지만 알아보기 쉬운것도 중요하니까.. 내 방법도 나쁘지 않다고 생각한다!