반응형
import java.util.*
//
//fun main() {
// print(solution("([{)}]"))
//}
var deque: MutableList<Char> = mutableListOf()
fun solution(s: String): Int {
var answer: Int = 0
if (s.length == 1) return 0
for (i in s.indices) {
deque.add(s[i])
}
for (i in s.indices) {
rotate()
if (isRight()) answer++
}
return answer
}
fun rotate() {
deque.add(deque.first())
deque.removeAt(0)
}
fun isRight(): Boolean {
val stack = Stack<Char>()
deque.forEach {
if (it == '[' || it == '{' || it == '(') {
stack.add(it)
} else if (it == ']') {
if (!stack.empty() && stack.peek() == '[') {
stack.pop()
} else {
return false
}
} else if (it == '}') {
if (!stack.empty() && stack.peek() == '{') {
stack.pop()
} else {
return false
}
} else if (it == ')') {
if (!stack.empty() && stack.peek() == '(') {
stack.pop()
} else {
return false
}
}
}
return stack.isEmpty()
}
반응형
'프로그래밍 > 알고리즘 문제풀이' 카테고리의 다른 글
[프로그래머스] [kotlin] 위장 (0) | 2022.02.24 |
---|---|
[백준][kotlin] 11655번 ROT13 (0) | 2022.02.21 |
[백준][kotlin] 4949번 균형잡힌 세상 (0) | 2022.02.15 |
[백준][kotlin] 2775번 부녀회장이 될테야 (0) | 2022.02.15 |
[백준] [kotlin] 10989번 수 정렬하기 3 (0) | 2022.02.14 |