-
[백준] 4949번: 균형잡힌 세상 - 코틀린(kotlin)알고리즘/백준 2022. 11. 9. 00:01
https://www.acmicpc.net/problem/4949
문제 풀이 전 설계
stack을 활용하여 (,[,),]를 잘 구분지어 매칭하면 되는 문제 같습니다.
코드
import java.util.* import kotlin.collections.ArrayList fun main() { val list = ArrayList<String>() while (true) { var line = readLine() ?: return if (line == ".") break; list.add(line) } for (s in list) { if (isBalanced(s)) println("yes") else println("no") } } fun isBalanced(s: String): Boolean { val stack = Stack<Char>() for (c in s) { when (c) { '(', '[' -> stack.push(c) ')' -> { if (!stack.isEmpty() && stack.peek() == '(') stack.pop() else stack.push(c) } ']' -> { if (!stack.isEmpty() && stack.peek() == '[') stack.pop() else stack.push(c) } } } return stack.size == 0 }
저는 실제로 if-else등을 중첩해서 구현하였는데 가장 코틀린스럽다고 느끼는 코드를 가져왔습니다.
출처
https://www.acmicpc.net/source/49012146
'알고리즘 > 백준' 카테고리의 다른 글
[백준] 2805번: 나무 자르기 - 코틀린(kotlin) (0) 2022.11.12 [백준] 1874번 : 스택 수열 - 코틀린(kotlin) (0) 2022.11.10 [백준] 7568번: 덩치 - 코틀린(kotlin) (1) 2022.11.08 [백준] 10773번: 제로 - 코틀린(kotlin) (0) 2022.11.07 [백준] 15829번: Hashing - 코틀린(kotlin) (0) 2022.11.05