본문 바로가기
프로그래머스 코딩테스트 문제/Level 1

[프로그래머스] - 정수 내림차순으로 배치하기(C#)

by jyppro 2023. 7. 24.

정수 내림차순으로 배치하기

오늘은 "정수 내림차순으로 배치하기" 문제를 풀어보도록 하겠습니다. 

 

문제 설명

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

 

제한 조건

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

 

입출력 예

n return
118372 273811

 

시작 코드

public class Solution {
    public long solution(long n) {
        long answer = 0;
        return answer;
    }
}

 

나의 풀이

using System;

public class Solution {
    public long solution(long n) {
        long answer = 0;
        char[] a = n.ToString().ToCharArray();
        Array.Sort(a);
        Array.Reverse(a);
        answer = Convert.ToInt64(new string(a));
        return answer;
    }
}

문제를 확인해 보겠습니다. 문제에 시작에 long타입으로 정수n이 주어지고, char타입의 배열 a를 선언하여 주어진 n을 string타입으로 변환한 뒤에 char타입 배열로 연속적으로 변환시켜 줍니다. Array.Sort를 사용하여 배열을 정렬시켜주고, Reverse를 사용하여 다시 뒤집어 줍니다. 해당 배열을 int형으로 변환시켜주기 위해 string으로 먼저 변환시켜준뒤에 Convert를 실행시켜 answer에 넣어줍니다.

 

이번 문제에서 봐야할 것은 각종 자료형의 특징입니다. 해당 문제에서 요구하는 것은 단순히 입력받은 정수n을 내림차순으로 정렬하는 것입니다. 이것을 하기 위해서 여러가지 변형과정을 거칩니다. long타입의 n을 string으로, string을 char형태의 배열로 잘라서 a에 저장시킵니다. 그리고 배열을 다루는 Array객체의 메서드를 사용해서 자동으로 오름차순이 되는 정렬을 사용한 뒤에 뒤집어 내림차순으로 만들어 줍니다. 그리고 최종적으로 long타입으로 정답을 반환시켜 주기위해 Convert.ToInt64()를 사용하기 위한 string타입으로 먼저 변환시켜 준 뒤에 사용해줘서 타입을 다시 원래대로 원상복귀 시켜줍니다. ToInt64()는 64비트 정수로 변환한다는 뜻입니다.

 

<NEXT>

오늘은 "정수 내림차순으로 배치하기" 문제를 풀어봤습니다. 다음에는 "하샤드 수" 문제를 풀어보도록 하겠습니다. 감사합니다.