계속 하나가 시간초과도 나고 더이상의 방법이 생각이 안나서 그냥 다른 사람의 풀이를 봤다..
일단 나의 풀이
fun solution3(number: String, k: Int): String {
var answer = ""
val numberArray = number.map { it }.toMutableList()
if(numberArray.size == k) return ""
for ( i in 1..k){
removing3(numberArray)
}
for (i in numberArray){
answer+=i
}
println(numberArray)
return answer
}
fun removing3(intArray: MutableList<Char>){
for (i in intArray.indices){
if(i == intArray.lastIndex){
intArray.removeAt(i)
}
else if(intArray[i] < intArray[i+1]){
intArray.removeAt(i)
break
}
}
}
그리고 다른 사람의 풀이...
import java.util.*
class Solution {
fun solution(number: String, k: Int): String {
var answer = ""
var kCnt = k
val numberStack : Stack<Char> = Stack()
var numArray = CharArray(number.length-k)
number.forEach {
while (!numberStack.isEmpty()&&numberStack.peek()<it&&kCnt!=0){
numberStack.pop()
kCnt--
}
numberStack.push(it)
}
for (i in 0 until kCnt){
numberStack.pop()
}
numberStack.forEachIndexed { index, c ->
numArray[index] = c
}
return String(numArray)
}
}
정말 잘푸네
for문 을 되도록이면 안스는 구조로 만들어야 겠다... 하나 하나 앞뒤로 비교해가면서 만들어 주면 되는데 너무 고생했누..
'코딩테스트(코틀린) 기초부터 연습' 카테고리의 다른 글
프로그래머스 dfs /bfs 타겟넘버 (0) | 2021.04.10 |
---|---|
프로그래머스 탐욕법 섬연결하기 (0) | 2021.04.10 |
프로그래머스 탐욕법 체육복 (0) | 2021.04.09 |
프로그래머스 소수찾기 (0) | 2021.04.08 |
프로그래머스 디스크컨트롤러 힙(Heap) (0) | 2021.04.08 |