함수 solution은 정수 n을 매개변수로 입력받습니다. n의 각 자릿수를 큰것부터 작은 순으로 정렬한 새로운 정수를 리턴해주세요. 예를들어 n이 118372면 873211을 리턴하면 됩니다
n은 1이상 8000000000 이하인 자연수입니다.
| n | return |
|---|---|
| 118372 | 873211 |
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("",)을 이용하여 하나로 합칠 수 있었다.
여기서 다른 문제는 Join은 string형으로 저장이 되어
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형으로 변환해줄 수 있는 점이다.