풀이
1. 스택 사용
2-1. '(' 일 경우, 스택에 무조건 넣음
2-2. ')' 일 경우
a. 스택이 비어 있으면 NO, 현재 문자열을 검사하는 반복문에 대해서 break
b. 스택에 괄호가 있으면 pop 후에 이어서 진행
코틀린 공부도 할 겸, 겸사겸사 오랜만에 알고리즘 풀기
자바 경험에 의존해서 작성하니까 코틀린도 자바스럽게 풀어 버림 😊👌
자바였으면 5분도 안 걸렸을 거 코틀린으로 하려니 아리까리 (ㅠㅠ)
코틀린을 좀 더 코틀린스럽게 짜려면 스프링만 할 게 아니라 코틀린도 해야겠다.
(기초만 후다닥 하고 넘어가버리니까 얕은 지식으로 눈 가리고 아웅 하고 있는 듯...ㅠ)
더보기
import java.util.*
import kotlin.collections.ArrayList
fun main() = with(System.`in`.bufferedReader()) {
val n = readLine().toInt()
val strList = ArrayList<String>()
val stack = Stack<Char>()
val result = StringBuilder()
for (i in 0 until n) {
strList.add(readLine())
}
for (str in strList) {
val target = str.toCharArray()
stack.clear()
for (c in target) {
when (c) {
'(' -> stack.add('(')
')' -> if (stack.empty()) {
stack.add('(')
break
} else stack.pop()
}
}
if (stack.empty())
result.append("YES\n")
else
result.append("NO\n")
}
print(result)
}
'알고리즘왕 > BOJ' 카테고리의 다른 글
[BOJ/20057/JAVA] 마법사 상어와 토네이도 (0) | 2021.04.06 |
---|---|
[JAVA/백준/20366] 같이 눈사람 만들래? (0) | 2021.01.20 |
[JAVA/백준/2585] 경비행기 (0) | 2021.01.20 |
[JAVA/백준/17940] 지하철 (0) | 2021.01.18 |
[JAVA/백준/20437] 문자열 게임 2 (0) | 2021.01.17 |