[백준] 자전거 속도 (2765)(kotlin)

문제 설명

백준 2765번 문제 링크

입력 및 출력

» 입력

입력은 여러 줄의 데이터로 구성된다. 각 데이터는 지름, 회전수, 시간이 공백으로 구분되어 주어진다. 지름은 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() }
    }
}