-
[백준][Kotlin]17298번 오큰수백준 2023. 2. 27. 23:31728x90
해당문제는 이전에 작성하였던 프로그래머스의 문제 뒤에 있는 큰 수 찾기 와 동일한 아디이어로 작성하였습니다.
https://want-kotlin-pro.tistory.com/91
[프로그래머스][kotlin] 뒤에 있는 큰 수 찾기
import java.util.* class Solution { fun solution(numbers: IntArray): IntArray { var result = ArrayDeque() var stack = ArrayDeque() for(i in numbers.size-1 downTo 0){ while(!stack.isEmpty()){ if(stack.peekLast() > numbers[i]){ result.add(stack.peekLast()) s
want-kotlin-pro.tistory.com
상기 주소를 보시면 이전에 작성한 글을 확인하실 수 있습니다.
하기는 작성한 코드와 채점 결과 입니다.
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 dq1 = ArrayDeque<Int>() //오큰수 저장 var dq2 = ArrayDeque<Int>() // 정답 var arr1 = IntArray(N){0} // 자료 저장 st = StringTokenizer(br.readLine()) repeat(N){ arr1[it] = st.nextToken().toInt() } for(i in arr1.size-1 downTo 0){ while(!dq1.isEmpty()){ if(dq1.peekFirst() > arr1[i]){ dq2.addFirst(dq1.peekFirst()) dq1.addFirst(arr1[i]) break } else { dq1.removeFirst() } } if(dq1.isEmpty()){ dq1.addFirst(arr1[i]) dq2.addFirst(-1) } } while(!dq2.isEmpty()){ bw.append("${dq2.pollFirst()} ") } bw.flush() bw.close() // val e = System.currentTimeMillis() // println((e-s)/1000.0) }
'백준' 카테고리의 다른 글
[백준][Kotlin] 11724번 연결 요소의 개수 (0) 2023.03.03 [백준]1517번 버블 소트 (0) 2023.03.03 [백준][Kotlin]11399번 ATM (0) 2023.02.27 [백준][Kotlin]11286번 절댓값 힙 (0) 2023.02.27 [백준][Kotlin]11003번 최솟값 찾기 (0) 2023.02.27