일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- 다크모드제한
- bronze3
- Android
- gradle설정
- Silver5
- Kotlin
- silver4
- LV1
- 테마변경
- Alert Dialog
- 뷰클래스
- 프로그래머스
- fragment에서 context사용
- LIS
- 백준
- map
- Top-Down
- silver3
- 녹음기
- bottom-up
- dp
- toLong()
- recyclerView 클릭이벤트
- 임시저장하기
- naver open api
- bronze4
- RecyclerView
- bronze2
- RETROFIT
- stack
- Today
- Total
유니 코드
[BOJ/백준][Bronze IV] 5543: 상근날드 (Kotlin) 본문
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
'알고리즘 > 미분류' 카테고리의 다른 글
[BOJ/백준][Bronze III] 5086: 배수와 약수 (Kotlin) (0) | 2022.02.21 |
---|---|
[BOJ/백준][Bronze III] 10872: 팩토리얼 (Kotlin) (0) | 2022.02.17 |
[BOJ/백준][Bronze IV] 10797: 10부제 (Kotlin) (0) | 2022.02.16 |
[BOJ/백준][Bronze V] 2914 : 저작권 (Kotlin) (0) | 2022.02.14 |