함수 solution은 정수 n을 매개변수로 입력받습니다. n의 각 자릿수를 큰것부터 작은 순으로 정렬한 새로운 정수를 리턴해주세요. 예를들어 n이 118372면 873211을 리턴하면 됩니다.
문제해석
n을 내림차순으로 배치
• n은 1이상 8000000000 이하인 자연수입니다.
class Solution
{
fun solution(n: Long): Long = n.sortDescending()
}
sortDescending() -> 리스트와 같은 컬렉션 타입에 사용됨
class Solution
{
fun solution(n: Long): Long
{
val listn = n.toString().toList().sortDescending()
return listn.toLong()
}
}
문자열에 대해서 조금 더 공부해야 할거같다.
class Solution
{
fun solution(n: Long): Long =
String(n.toString().toCharArray().sortedArrayDescending()).toLong()
}
n.toString()문자열로 변환 -> "118372"
.toCharArray()문자열을 문자 배열로 변환 -> ['1', '1', '8', '3', '7', '2']
.sortedArrayDescending() 문자 배열을 내림차순으로 정렬
String(...) 정렬된 문자 배열을 다시 문자열로 변환 -> "873211"
class Solution
{
fun solution(n: Long): Long
{
return n.toString() // 숫자를 문자열로 변환 -> "118372"
.toList() // 문자열을 문자 리스트로 변환 ->
//['1', '1', '8', '3', '7', '2']
.sortedDescending() // 내림차순으로 정렬
.joinToString("") // 정렬된 리스트를 문자열로 결합 -> "873211"
.toLong() // 문자열을 Long 타입으로 변환
}
}
컬렉션에서 .joinToString 하면 하나로 모임
list를 toString하면 괄호와 콤마가 그래도 들어감
package org.example
class Solution{
fun solution(n: Long): Long
{
val nString = n.toString()
val nList = nString.toList() //문자열은 문자 하나하나의 집합
val sortedlist = nList.sortedDescending() //문자열이 리스트로 들어가면 문자로 찢어짐
val joinedlist = sortedlist.joinToString ("") //리스트를 하나로 모임
//val toStringlist = sortedlist.toString()
//리스트 toString했기 때문에 괄호랑 콤마가 그래도 들어감 -> “[9, 7, 6, 4, 3, 2]”
val result = joinedlist2.toLong()
return n.toString()
.toList()
.sortedDescending<Char>()
.joinToString<Char>(separator = "")
.toLong()
}
}
fun main()
{
val solu = Solution()
println(solu.solution(647392))
}