https://www.acmicpc.net/problem/10179
10179번: 쿠폰
당신은 어떤 물건이라도 20% 할인해주는 쿠폰을 가지고 있다. 원래 가격이 주어질 때, 쿠폰을 사용하면 얼마가 되는지 알려주는 프로그램을 작성하시오.
www.acmicpc.net
문제
당신은 어떤 물건이라도 20% 할인해주는 쿠폰을 가지고 있다.
원래 가격이 주어질 때, 쿠폰을 사용하면 얼마가 되는지 알려주는 프로그램을 작성하시오.
입력
첫 번째 줄에 테스트케이스의 수가 주어진다.
각 줄에는 물건의 원래가격이 소수점 둘째자리까지 주어진다.
출력
할인된 가격을 달러 단위로 출력한다.
나누어떨어지지 않을 때는 소수점 셋째 자리에서 반올림해서 둘째 자리까지 출력한다.
해당 문제를 풀기 위해서는 다음과 같은 개념이 필요하다.
1) 테스트 케이스 작성법
2) n자리 소수점 출력하기
현 게시물에는 소수점 출력하는 방법을 알아보려 한다.
방법은 다음과 같다.
println("%.2f".format(it))
.2f 는 소수점 둘째 자리까지 반올림하여 나타낸다는 수식이다. 이것을 format 함수에 실수를 넣게 되면 원하는 값을 출력할 수 있다.
전체 코드
import java.io.BufferedReader
import java.io.InputStreamReader
import java.util.*
import kotlin.math.roundToInt
fun main() {
val br = BufferedReader(InputStreamReader(System.`in`))
val testCase = br.readLine().toInt()
val list = mutableListOf<Double>()
for(i in 1..testCase) {
val st = StringTokenizer(br.readLine())
val n = st.nextToken().toDouble()
list.add(n * (1 - 0.2))
}
list.forEach {
println("$%.2f".format(it))
println((it*100).roundToInt() / 100.0)
}
}
'algorithm > 구현' 카테고리의 다른 글
백준 14769) Stacking Cups (hashMap, sort) (0) | 2021.05.26 |
---|---|
백준 14753) MultiMax (브루트포스 알고리즘, 정렬, case work) (0) | 2021.05.26 |
백준 20920) 영단어 암기는 괴로워 (hashmap, sortWith) (0) | 2021.05.26 |
백준 17127) 벚꽃이 정보섬에 피어난 이유 (0) | 2021.05.17 |
백준 1316) 그룹 단어 체커 (0) | 2021.05.17 |