본문 바로가기
프로그래머스 문제풀이

프로그래머스 Level1 : 정수 내림차순으로 배치하기

by 공부합시다홍아 2020. 6. 28.

[ 얍삽한 방법 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