관리 메뉴

나만을 위한 블로그

[Algorithm] 프로그래머스 - 커피 심부름 (Kotlin) 본문

알고리즘 문제 풀이/프로그래머스

[Algorithm] 프로그래머스 - 커피 심부름 (Kotlin)

참깨빵위에참깨빵 2024. 7. 4. 18:55
728x90
반응형
아메리카노, 카페라떼만 파는 카페에서 커피를 사려고 한다. 아메리카노, 카페라떼 가격은 아이스, 핫 상관없이 각각 4500, 5000원이다. 메뉴만 적은 팀원은 아이스로 통일하고 '아무거나'를 적은 팀원은 아이스 아메리카노로 통일한다. 각 직원이 적은 메뉴가 문자열 배열 order로 주어질 때 결제할 금액을 리턴하는 함수를 완성하라. order의 원소는 아래의 것들만 들어오고 각 의미는 다음과 같다

 

 

먼저 아메리카노, 카페라떼, anything을 모두 구분하면서 가격을 계산한다면 아래와 같이 풀 수 있다.

 

class Solution {
    fun solution(order: Array<String>): Int {
        var answer = 0
        order.forEach { menu ->
            when {
                menu.contains("americano") -> answer += 4500
                menu.contains("cafelatte") -> answer += 5000
                menu == "anything" -> answer += 4500
            }
        }
        return answer
    }
}

 

하지만 map을 써서 아래와 같이 풀 수도 있다.

 

class Solution {
    fun solution(order: Array<String>): Int = order.map {
        if (it.contains("cafelatte")) 5000 else 4500
    }.sum()
}

 

아이스, 핫 상관없이 아메리카노 4500원, 카페라떼 5000원에 팔고 있고, anything인 경우 차가운 아메리카노(4500원)로 통일한다는 조건이 있다.

때문에 카페라떼면 5000원으로 계산하고, 그 외의 경우는 전부 4500원을 더하도록 map 안에 조건을 적고 sum()으로 총액을 계산해서 리턴시키면 된다.

반응형
Comments