[ 얍삽한 방법 1 ]
using System; //Array.sort를 사용하기 때문에 입력
public class Solution {
public long solution(long n) {
long answer = 0;
string num = n.ToString(); //long n을 string으로 변환
char[] num1 = new char[num.Length]; //string은 읽기 전용이다. 그래서 char배열을 선언
for (int i = 0; i < num1.Length; i++) //입력된 길이만큼 비교할 수 있게 반복문 작성
{
num1[i] = num[i]; //string에 각 index번째있는 char들을 num1배열에 넣어준다
}
Array.Sort(num1); //num1 정렬
Array.Reverse(num1); // 정렬된 num1을 뒤집어 준다.
string ans = new string(num1); //char배열인 num1을 다시 string으로 변환
answer = long.Parse(ans); //string을 long으로 변환시킨다.
return answer;
}
}
[ 얍삽 안좋아요 ]
public class Solution {
public long solution(long n) {
long answer = 0;
string num = n.ToString();
char[] num1 = new char[num.Length];
for (int i = 0; i < num1.Length; i++)
{
num1[i] = num[i];
}
char temp; //비교한 값의 위치를 변환시켜주기 위해 임시 변수 선언
for (int i = 0; i < num1.Length; i++) //입력된 n의 길이만큼 반복, 비교할 첫 번째 수
{
for (int j = i; j < num1.Length; j++) //입력된 n의 길이만큼 반복, 비교한 다음 수
{
if (num1[i] < num1[j]) // 첫번 째값이 두번 째 값보다 작다면
{
temp = num1[i]; //첫번째 값을 temp에 저장
num1[i] = num1[j]; //첫 번째 값 자리에 다음 수를 저장
num1[j] = temp; // 두 번째 값의 자리에 작은 수 인 temp를 저장
}
}
}
string ans = new string(num1);
answer = long.Parse(ans);
return answer;
}
}
728x90
'프로그래머스 문제풀이' 카테고리의 다른 글
프로그래머스 Level1 : 자연수 뒤집어 배열로 만들기 (0) | 2020.06.28 |
---|---|
프로그래머스 Level1 : 행렬의 덧셈 (0) | 2020.06.28 |
프로그래머스 Level1 : 자릿수 더하기 (0) | 2020.06.28 |
프로그래머스 Level 1 : 두 정수 사이의 합 (0) | 2020.06.25 |
프로그래머스 LEVEL 1 : 직사각형 별찍기 (0) | 2020.06.25 |