[백준] 자전거 속도 (2765)(kotlin)
문제 설명
입력 및 출력
» 입력
입력은 여러 줄의 데이터로 구성된다. 각 데이터는 지름, 회전수, 시간이 공백으로 구분되어 주어진다. 지름은 inch단위의 실수이며, 회전수는 정수이다. 시간은 초단위의 실수로 주어진다. 입력은 회전수가 0이면 끝난다. 실수는 소수점 셋째자리이하까지 주어진다.
» 출력
- 각각의 데이터에 대해 다음을 출력한다 Trip #N: distance MPH N은 각각의 데이터 번호를 출력해야 하며, distance는 총 거리(Miles)를 소수 둘째 자리까지 반올림하여 나타내며, MPH는 평균 속도(miles per hour)를 소수 둘째 자리까지 반올림하여 나타낸다. 회전수가 0인 데이터에 대해서는 출력하지 않는다.
예제 입출력(테스트케이스)
입력 | 출력 |
---|---|
26 1000 5 27.25 873234 3000 26 0 1000 |
Trip #1: 1.29 928.20 Trip #2: 1179.86 1415.84 |
문제 힌트
π의 값은 3.1415927을 사용하면 된다. 1마일은 5280피트이다. 1피트는 12인치이다. 1시간은 60분이다. 1분은 60초이다. 1펄롱은 201.168미터이다.
문제 풀이1
import java.io.BufferedReader
import java.io.InputStreamReader
fun main(args: Array<String>) = with(BufferedReader(InputStreamReader(System.`in`))) {
var trip = readLine().split(" ").map { it.toFloat() }
var count = 1
val pi = 3.1415927f
while (trip[1] != 0.0f) {
val distanceInches = (trip[0] * pi) * trip[1]
val distanceMiles = distanceInches / 12.0f / 5280.0f
val mph = distanceMiles / trip[2] * 3600
println("Trip #$count: ${String.format("%.2f", distanceMiles)} ${String.format("%.2f", mph)}")
count++
trip = readLine().split(" ").map { it.toFloat() }
}
}