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
- 동적계획법
- foreach
- GREEDY
- sortedBy
- 2020
- solution
- indices
- Queue
- dp
- report
- 프로그래머스
- Java
- hackerrank
- Recursion
- Poll
- 코틀린
- programmers
- lastIndex
- PriorityQueue
- Kotlin
- 2D Array
- Util
- dynamic programming
- Developer
- intarray
- booleanarray
- Main
- heap
- contentToString
- 알고리즘
Archives
- Today
- Total
Code in
프로그래머스 정렬 가장 큰 수 with Kotlin 본문
프로그래머스의 코딩테스트 연습 정렬 부분 가장 큰 수 문제이다.
IntelliJ에서의 문제 풀이이다.
var numbers: IntArray = intArrayOf(3, 30, 34, 5, 9)
fun solution(numbers: IntArray): String {
var answer = ""
var tmparr = arrayOf<String>()
numbers.forEach{
tmparr += it.toString() // numbers를 String 배열로 바꾼다.
}
tmparr.sortWith(Comparator<String>{a, b ->
when{
a.length == b.length -> b.compareTo(a)
else -> (b+a).compareTo(a+b)
}
})
// sortWith는 Comparator를 유저가 지정할 수 있도록 한다.
// 임시로 사용할 것이기 때문에 Comparator<String>를 name 없이 만든다.
// a, b -> 는 a, b라는 파라미터로 받는 것이다.
// when은 Kotlin의 다중 if? switch? 비슷한 거라서 if로 바꿔도 된다.
// A.compareTo(B)는 같으면 0, A가 B보다 작으면 -1, A가 B보다 크면 +1을 return한다.
if(tmparr[0] == "0") {
answer = "0"
return answer
} // 결과 값이 "00000"인 경우를 미리 제외한다.
for (i in 0..numbers.size-1)
answer += (tmparr[i])
// answer이 String이라서 +로 concatenation이 가능하다.
return answer
}
fun main() {
print(solution(numbers)) //9534330
}
URL: https://programmers.co.kr/learn/courses/30/lessons/42746#
'알고리즘 스터디_문제풀이' 카테고리의 다른 글
프로그래머스 큐 프린터 with Kotlin (0) | 2020.08.11 |
---|---|
프로그래머스 큐 다리를 지나는 트럭 with Kotlin (0) | 2020.08.11 |
프로그래머스 큐 기능개발 with Kotlin (0) | 2020.08.11 |
프로그래머스 정렬 H-Index with Kotlin (0) | 2020.08.10 |
프로그래머스 정렬 K번째 수 문제풀이 with Kotlin (0) | 2020.08.10 |
Comments