Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- programmers
- 자바
- 프로그래머스
- back-end
- baekjoon
- algorithm
- OS
- Java8
- 운영체제
- 모던자바
- Spring
- TDD
- DFS
- lambda
- LEVEL2
- backtracking
- BFS
- 스프링
- 프로젝트
- 네트워크
- 알고리즘
- DP
- 백트래킹
- kotlin
- 코틀린
- Brute-force
- java
- 자료구조
- 백준
- 그래프
Archives
- Today
- Total
요깨비's LAB
[백준, 자료구조, Kotlin] P.17298 오큰수 본문
처음에 자꾸 시간초과가 나서 뭐지 하고 결국에 구글링을 참조하였는데, 로직은 제가 짠것과 거의 동일했습니다.
단, 저는 배열을 순회하면서 print("${arr[i]} ")으로 출력을 하여서 시간초과가 난 것 같습니다.
StringBuilder를 만들어 순회한 데이터를 담아 한번에 출력하니 정답으로 처리가 되었습니다.
import java.lang.StringBuilder
import java.util.*
fun main(args: Array<String>) {
val scr = Scanner(System.`in`)
val N = scr.nextInt()
val stack = Stack<Int>()
val arr = IntArray(N)
for (i in 0 until N) {
val element = scr.nextInt()
arr[i] = element
}
val index = 0
var i = 0
stack.push(0)
for (i in 1 until N) {
while (!stack.isEmpty() && arr[stack.peek()] < arr[i]) {
val index = stack.pop()
arr[index] = arr[i]
}
stack.push(i)
}
stack.push(N - 1)
while (!stack.isEmpty()) {
val index = stack.pop()
arr[index] = -1
}
val sb = StringBuilder()
for (i in 0 until N) {
sb.append("${arr[i]} ")
}
print(sb.toString())
}
'알고리즘(Kotlin) > 자료구조' 카테고리의 다른 글
[백준, 자료구조, Kotlin] P.1158 요세푸스 문제 (0) | 2021.07.08 |
---|---|
[백준, 자료구조, Kotlin] P.10845 큐 (0) | 2021.06.02 |
[백준, 자료구조, Kotlin] P.1406 에디터 (0) | 2021.06.02 |
[백준, 자료구조, Kotlin] P.1874 스택 수열 (0) | 2021.06.01 |
Comments