-
[백준] 1874번 : 스택 수열 - 코틀린(kotlin)알고리즘/백준 2022. 11. 10. 00:01
https://www.acmicpc.net/problem/1874
문제 해석
1~n까지의 수를 스택에 넣을 수 있다.
어떠 수열이 주어졌을 때 push, pop연산으로 스택을 이용하여 해당 수열을 만들 수 있는지 알아내 보자.
예시 수열 : 4 3 6 8 7 5 2 1
1~8까지의 수가 존재함
push : 1
push : 1 2
push : 1 2 3
push : 1 2 3 4
pop : 1 2 3 (수열 4)
pop : 1 2 (수열 4 3)
push : 1 2 5
push : 1 2 5 6
pop : 1 2 5 (수열 4 3 6)
push : 1 2 5 7 (수열 4 3 6)
push : 1 2 5 7 8 (수열 4 3 6)
pop : 1 2 5 7 (수열 4 3 6 8 )
pop : 1 2 5 (수열 4 3 6 8 7)
pop : 1 2 (수열 4 3 6 8 7 5)
pop : 1 (수열 4 3 6 8 7 5 2)
pop : (수열 4 3 6 8 7 5 2)
수열 만들어짐코드
import java.util.* fun main() { val count = readLine()!!.toInt() val stack = Stack<Int>() val sequence = LinkedList<Int>() repeat(count) { sequence.add(readLine()!!.toInt()) } val stringBuilder = StringBuilder() for (index in 1..count) { stack.push(index) stringBuilder.append("+\n") while (stack.isNotEmpty() && sequence.isNotEmpty() && stack.peek() == sequence.first ) { sequence.pollFirst() stack.pop() stringBuilder.append("-\n") } } if(stack.isEmpty()){ println(stringBuilder.toString()) } else{ println("NO") } }
'알고리즘 > 백준' 카테고리의 다른 글
[백준] 1654번: 랜선 자르기 - 코틀린(kotlin) (0) 2022.11.13 [백준] 2805번: 나무 자르기 - 코틀린(kotlin) (0) 2022.11.12 [백준] 4949번: 균형잡힌 세상 - 코틀린(kotlin) (0) 2022.11.09 [백준] 7568번: 덩치 - 코틀린(kotlin) (1) 2022.11.08 [백준] 10773번: 제로 - 코틀린(kotlin) (0) 2022.11.07