알고리즘/미분류

[BOJ/백준][Bronze IV] 5543: 상근날드 (Kotlin)

꼬물쥰 2022. 2. 15. 20:28

https://www.acmicpc.net/problem/5543

 

5543번: 상근날드

입력은 총 다섯 줄이다. 첫째 줄에는 상덕버거, 둘째 줄에는 중덕버거, 셋째 줄에는 하덕버거의 가격이 주어진다. 넷째 줄에는 콜라의 가격, 다섯째 줄에는 사이다의 가격이 주어진다. 모든 가

www.acmicpc.net

문제

상근날드에서 가장 잘 팔리는 메뉴는 세트 메뉴이다. 주문할 때, 자신이 원하는 햄버거와 음료를 하나씩 골라, 세트로 구매하면, 가격의 합계에서 50원을 뺀 가격이 세트 메뉴의 가격이 된다.

햄버거는 총 3종류 상덕버거, 중덕버거, 하덕버거가 있고, 음료는 콜라와 사이다 두 종류가 있다.

햄버거와 음료의 가격이 주어졌을 때, 가장 싼 세트 메뉴의 가격을 출력하는 프로그램을 작성하시오.


입력

입력은 총 다섯 줄이다. 첫째 줄에는 상덕버거, 둘째 줄에는 중덕버거, 셋째 줄에는 하덕버거의 가격이 주어진다. 넷째 줄에는 콜라의 가격, 다섯째 줄에는 사이다의 가격이 주어진다. 모든 가격은 100원 이상, 2000원 이하이다.


출력

첫째 줄에 가장 싼 세트 메뉴의 가격을 출력한다.


풀이

햄버거 가격의 최솟값과 음료의 최솟값을 찾으면 가장 싼 세트 메뉴의 가격을 알 수 있다.

햄버거와 음료 가격을 리스트로 받아와서 최솟값을 반환하는 메서드를 사용하였다.

 

<코드1>

import java.util.*

fun main(args: Array<String>){
    val sc: Scanner = Scanner(System.`in`)
    var burger_list = ArrayList<Int>()
    burger_list.add(sc.nextInt())
    burger_list.add(sc.nextInt())
    burger_list.add(sc.nextInt())
    
    var burger_min = burger_list.minOrNull()!!

    var juice_list = ArrayList<Int>()
    juice_list.add(sc.nextInt())
    juice_list.add(sc.nextInt())

    var juice_min = juice_list.minOrNull()!!

    val set_price = burger_min + juice_min - 50
    
    println(set_price)
}

코드가 너무 정신없고 길어서 다음과 같이 수정하였다.

 

<코드2>

import java.util.*

fun main(args: Array<String>){
    val sc: Scanner = Scanner(System.`in`)
    var burger_list = ArrayList<Int>()
    var juice_list = ArrayList<Int>()
    
    for(i in 0..2){
        burger_list.add(sc.nextInt())
    }
    
    for(i in 3..4){
        juice_list.add(sc.nextInt())
    }
    
    println(burger_list.minOrNull()!! + juice_list.minOrNull()!! - 50)
}

[ GitHub ] : https://github.com/wldsbs/Algorithm/blob/main/BaekJoon/BOJ5543.kt


느낀점

오늘도 어김없이 컴파일에러가 났다...

입력받은 리스트 요소의 최솟값을 찾기위해 min() 메서드를 사용하였는데

error: unresolved reference: min

이런 컴파일에러가 발생하였다. 

kotlin 공식 사이트에 찾아보니까 minOrNull()이라는 메서드가 있어서

min()을 minOrNull()!!로 수정하니까 정상적으로 실행이 되었다.

공식 홈페이지를 참고하는 것도 좋은 것 같다.

 

참고 : https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/min-or-null.html