[백준] 펫 (1362)(kotlin)
문제 설명
입력 및 출력
» 입력
- 입력은 번호를 가진 시나리오들로 구성됩니다. 시나리오는 1번부터 시작되며 1씩 증가합니다. 적정 체중(o)와 실제 체중(w)가 한 줄에 입력됨으로써 시나리오가 시작됩니다(10 ≤ o, w ≤ 1000). 그 다음 줄부터 펫에 가할 작용이 한 줄에 하나씩 주어지며, “# 0”을 마지막 줄로 하여 시나리오가 종료됩니다. “# 0”은 처리하지 않습니다. 펫에게 가할 각 작용은 ‘E’ 또는 ‘F’로 시작하며, 공백을 두고 숫자 n (1 ≤ n ≤ 999)이 주어집니다. 모든 시나리오가 끝나면 “0 0”이 입력되며, “0 0”은 처리하지 않습니다.
» 출력
각 시나리오에 대하여, 시나리오 번호와 모든 작용이 완료된 후 펫의 상태를 공백으로 구분하여 한 줄씩 출력합니다.
예제 입출력(테스트케이스)
입력 | 출력 |
---|---|
100 100 F 10 F 10 E 20 # 0 50 30 F 5 E 20 # 0 0 0 |
1 :-) 2 :-( |
문제 풀이1
import java.io.BufferedReader
import java.io.InputStreamReader
fun main(args: Array<String>) = with(BufferedReader(InputStreamReader(System.`in`))){
var count = 1
while (true) {
val (o, w) = readLine().split(" ").map { it.toInt() }
if (o < 10 || w < 10) break
var isDead = false
var weight = w
while (true) {
val (operation, n) = readLine()!!.split(" ")
when (operation) {
"F" -> weight += n.toInt()
"E" -> weight -= n.toInt()
else -> break
}
if (weight <= 0) {
isDead = true
}
}
println("${count++} " +
if (isDead) "RIP"
else {
if (weight in (o / 2 + 1) until o * 2) ":-)"
else ":-("
}
)
}
}