[백준] 가위 바위 보? (4493)(kotlin)
문제 설명
입력 및 출력
» 입력
첫째 줄에는 테스트 케이스의 개수 t(0 < t < 1000)가 주어진다. 각 테스트 케이스의 첫째 줄에는 가위 바위 보를 한 횟수 n(0 < n < 100)이 주어진다. 다음 n개의 줄에는 R, P, S가 공백으로 구분되어 주어진다. R, P, S는 순서대로 바위, 보, 가위이고 첫 번째 문자는 Player 1의 선택, 두 번째 문자는 Player 2의 선택이다.
» 출력
각 테스트 케이스에 대해서 승자를 출력한다. (Player 1 또는 Player 2) 만약, 비겼을 경우에는 TIE를 출력한다.
예제 입출력(테스트케이스)
입력 | 출력 |
---|---|
3 2 R P S R 3 P P R S S R 1 P R |
Player 2 TIE Player 1 |
문제 풀이1
import java.io.BufferedReader
import java.io.InputStreamReader
fun main(args: Array<String>) = with(BufferedReader(InputStreamReader(System.`in`))) {
repeat(readLine().toInt()) {
var player1 = 0
var player2 = 0
repeat(readLine().toInt()) {
when (rspIsPlayer1Win(readLine().split(" "))) {
1 -> player1++
2 -> player2++
else -> {}
}
}
println(whoIsWinner(player1, player2))
}
}
fun rspIsPlayer1Win(game: List<String>): Int {
return when {
game[0] == "R" && game[1] == "S" -> 1
game[0] == "S" && game[1] == "P" -> 1
game[0] == "P" && game[1] == "R" -> 1
game[0] == game[1] -> 0
else -> 2
}
}
fun whoIsWinner(player1: Int, player2: Int): String {
return when {
player1 > player2 -> "Player 1"
player1 < player2 -> "Player 2"
else -> "TIE"
}
}