[Code-Kata] 정수 내림차순으로 배치하기

고현규·2023년 11월 30일

문제 설명

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

제한 사항

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

nreturn
118372873211

using System;
using System.Linq;
public class Solution {
    public long solution(long n) {
        
        char[] str = n.ToString().ToArray();

        Array.Sort(str);
        Array.Reverse(str);
        
        string temp;

        temp = string.Join("", str);        
        long answer = long.Parse(temp);
        
        return answer;
    }
}

문제 해결 과정

Array를 사용하려니 컴파일 에러가 등장해 using System이 필요한 것을 알았다.
ToArray또한 System.Linq가 필요하여 추가해주었다.

ToArray를 사용하면 char의 배열 형태로 저장해야 되는데,
해당 배열을 어떻게 다시 합치는지 몰라 찾아보았다.
string.Join("",)을 이용하여 하나로 합칠 수 있었다.

여기서 다른 문제는 Joinstring형으로 저장이 되어
long형으로 변환을 해주어야 했다.


정답 코드

 long answer = 0;
        char[] a = n.ToString().ToCharArray();
        System.Array.Sort(a);
        System.Array.Reverse(a);
        answer = System.Convert.ToInt64(new string(a));
        return answer;

using System;을 안 써주는 대신, Array 앞에 System을 달아주었다.
또한, ToCharArray()를 사용하여 Linq를 넣어줄 이유가 없어졌다.

하나 더 배운 건, System.Convert.ToInt64(new string(a))
string값을 바로 int형으로 변환해줄 수 있는 점이다.

profile
게임 개발과 기획

0개의 댓글