[백준/코틀린] 5430번: AC
골드 5
링크
풀이
명령어 R은 실제로 배열을 뒤집지 않고, 뒤집힘 여부만 토글하는 방식으로 처리합니다.
입력된 배열을 덱으로 파싱한 뒤, R과 D 명령을 순서대로 적용해 최종 결과를 출력합니다.
코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
fun main() = repeat(readln().toInt()) {
val p = readln()
val x = when (readln().toInt()) {
0 -> emptyList()
else -> readln().drop(1).dropLast(1).split(",").map { it.toInt() }
}
var r = false
val deque = ArrayDeque(x)
p.forEach {
when (it) {
'R' -> r = !r
'D' -> when {
deque.isEmpty() -> return@repeat println("error")
r -> deque.removeLast()
!r -> deque.removeFirst()
}
}
}
println(
when (r) {
false -> deque
true -> deque.reversed()
}.joinToString(",", "[", "]")
)
}
This post is licensed under CC BY 4.0 by the author.