알고리즘 CODEKATA 20 (정수 내림차순으로 배치하기)

오리너구리·2024년 5월 28일
0

CODEKATA

목록 보기
20/57

문제 설명

함수 solution은 정수 n을 매개변수로 입력받습니다. n의 각 자릿수를 큰것부터 작은 순으로 정렬한 새로운 정수를 리턴해주세요. 예를들어 n이 118372면 873211을 리턴하면 됩니다.


제한 조건

  • n은 1이상 8000000000 이하인 자연수입니다.

내 풀이

class Solution {
    fun solution(n: Long): Long {
        
        var nArray :IntArray = n.toString().map{it.toString().toInt()}.toIntArray()
        
        nArray.sortDescending()
        
        var sortedString = nArray.joinToString("")
        var answer = sortedString.toLong()
        
        return answer
    }
}

자꾸 안돼서 중간에 챗지피티 도움 좀 받음;

joinToString이라는걸 몰라서 그랬던 거였음!

확장함수에대해서 공부해야하는데 어떻게 공부해야 좋은지를 모르겠네;;


다른 사람 풀이

class Solution {
    fun solution(n: Long): Long = String(
    n.toString().
    toCharArray().
    sortedArrayDescending()
    )
    .toLong()
}

n을 문자열로 만들고. 각각의 문자배열로 만들고 , 내림차순으로 정렬하고, Long 타입으로 반환해라


여담

코드 카타 하면서 어렵거나 헷갈리는 점이
첫번째로 확장함수 등을 사용했을때 바뀌는 타입들을 다시 반환타입에 맞추는게 헷갈리고
두번째로 확장함수 자체가 어려운듯
종류도 너무 많고 뭐를 어디에 쓰는거고 그런걸 아직 몰라서 오늘부터 따로 공부하기로 했다!

같은 문제 푸는데 나는 엄청 길게 코드 쓰는데, 다른 분들은 확장함수 활용해서 한 줄로 끝내고 하는거보니
빨리 익혀야겠다는 생각이 들었음..

profile
오리너구리입니다

0개의 댓글