-
[백준][Kotlin]1874번 스택 수열백준 2023. 2. 26. 01:04728x90
해당 문제는 스택의 자료구조를 알고 있으면 매우 간단한 문제입니다.
문제를 간단히 설명하자면 스택 내부에 들어간 자료들은 오름차순을 유지해야 하며, 불가능 할 시 No을 출력
push 를 실행할때는 +, pop일때는 - 를 출력하는 문제입니다.
하기는 작성한 코드와 채점 현황 입니다.
import java.io.BufferedReader import java.io.BufferedWriter import java.io.InputStreamReader import java.io.OutputStreamWriter import java.util.* fun main() { // val s = System.currentTimeMillis() var br = BufferedReader(InputStreamReader(System.`in`)) //var bw = BufferedWriter(OutputStreamWriter(System.out)) var st = StringTokenizer(br.readLine()) val N = st.nextToken().toInt() // 수열의 개수 var sb = StringBuilder() var stack = Stack<Int>() var value = 1 for(i in 1 .. N){ st = StringTokenizer(br.readLine()) var target = st.nextToken().toInt() while(stack.isEmpty() || stack.last() < target){ stack.add(value) value++ sb.append("+\n") } if(stack.last() == target){ stack.pop() sb.append("-\n") } if(!stack.isEmpty() && stack.last() > target){ print("NO") return } } print(sb) // val e = System.currentTimeMillis() // println((e-s)/1000.0) }
'백준' 카테고리의 다른 글
[백준][Kotlin]2164번 카드2 (0) 2023.02.26 [백준][Kotlin] 2018번 수들의 합5 (0) 2023.02.26 [백준][Kotlin]1940번 주몽 (0) 2023.02.26 [백준][Kotlin]1546번 평균 (0) 2023.02.26 [백준][Kotlin]1253번 좋다 (0) 2023.02.26