[백준] 이진법 시계 (2704)(kotlin)
문제 설명
입력 및 출력
» 입력
- 첫 줄에 테스트 케이스의 수 N이 주어진다. (1<=N<=1000) 각 케이스마다 10진법에서의 시간, 분, 초로 나타낸 시각이 한 줄에 예제의 형식과 같이 주어진다.
» 출력
각 테스트 케이스마다, 3열 방식으로 읽은 이진법 시계의 시각과 3행 방식으로 읽은 이진법 시계의 시각을 공백으로 구분하여 출력한다. 각각 18개의 비트를 가져야 한다.
예제 입출력(테스트케이스)
입력 | 출력 |
---|---|
2 10:37:49 00:00:01 |
011001100010100011 001010100101110001 000000000000000001 000000000000000001 |
문제 풀이1
fun main(args: Array<String>) = with(System.`in`.bufferedReader()) {
repeat(readLine().toInt()) {
val clock = readLine().split(":").map { it.toInt().to6bitString() }
val bClock = Array(3) { b ->
IntArray(6) {
clock[b][it] - '0'
}
}
var r6h3 = ""
var r3h6 = ""
for (i in 0 until 6) for (j in 0 until 3) {
r6h3 += bClock[j][i]
}
for (i in 0 until 3) for (j in 0 until 6) {
r3h6 += bClock[i][j]
}
println("$r6h3 $r3h6")
}
}
fun Int.to6bitString(): String = Integer.toBinaryString(this).padStart(6, '0')