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 |
Tags
- GREEDY
- booleanarray
- report
- sortedBy
- Java
- Kotlin
- contentToString
- foreach
- 동적계획법
- Main
- indices
- Recursion
- Queue
- Poll
- hackerrank
- 코틀린
- dynamic programming
- 알고리즘
- dp
- Developer
- 2D Array
- programmers
- PriorityQueue
- lastIndex
- intarray
- heap
- solution
- 프로그래머스
- 2020
- Util
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#
코딩테스트 연습 - 가장 큰 수
0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내 주세요. 예를 들어, 주어진 정수가 [6, 10, 2]라면 [6102, 6210, 1062, 1026, 2610, 2106]를 만들 수 있고, 이중 가장 큰 ��
programmers.co.kr
'알고리즘 스터디_문제풀이' 카테고리의 다른 글
프로그래머스 큐 프린터 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