728x90
반응형
💻 프로그래머스 코딩 테스트 – 정수 내림차순으로 배치하기
🧩 문제 설명
주어진 자연수 n의 각 자릿수를 큰 숫자부터 정렬하여 새로운 정수를 만들어 반환하는 문제입니다.
예를 들어, n = 118372라면, 내림차순 정렬 결과는 873211이므로, 873211을 반환해야 합니다.
✔️ 제한 사항
- n은 1 이상 8,000,000,000 이하인 자연수입니다.
🧠 문제 풀이 접근
- n을 문자열로 변환한 후, 문자 배열로 만듭니다.
- 배열을 오름차순 정렬한 뒤 역순으로 뒤집어 내림차순을 만듭니다.
- 다시 문자열로 합친 뒤, 숫자로 변환하여 반환합니다.
🧾 코드 설명 (C#)
using System;
public class Solution {
public long solution(long n) {
// 정수를 문자열로 변환 후 문자 배열로 쪼갬
char[] c = n.ToString().ToCharArray();
// 오름차순 정렬 후 뒤집기 → 내림차순 정렬 효과
Array.Sort(c);
Array.Reverse(c);
// 다시 문자열로 만들어 숫자로 변환
long answer = Convert.ToInt64(new string(c));
return answer;
}
}
🔍 코드 상세 분석
- n.ToString().ToCharArray()
→ 정수를 문자열로 바꾸고 각 자릿수를 문자 배열로 분해합니다. - Array.Sort(c)
→ 문자 배열을 오름차순으로 정렬합니다. (예: ['3','2','1'] → ['1','2','3']) - Array.Reverse(c)
→ 정렬된 배열을 뒤집어서 내림차순으로 만듭니다. - new string(c)
→ 문자 배열을 다시 문자열로 조합합니다. - Convert.ToInt64(...)
→ 최종 문자열을 다시 숫자로 변환합니다.
✅ 최종 결과
이 코드는 간결하면서도 문자열 조작을 잘 활용한 예시입니다. Array.Sort() + Array.Reverse()의 조합으로 내림차순 정렬을 쉽게 구현했고, 전체 로직이 직관적이라 가독성도 좋습니다.
728x90
반응형
'C# > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 음양 더하기 (0) | 2025.04.21 |
---|---|
[프로그래머스] 두 정수 사이의 합 (0) | 2025.04.21 |
[프로그래머스] 정수 제곱근 판별 (0) | 2025.04.21 |
[프로그래머스] 하샤드 수 (0) | 2025.04.21 |
2021.07.23 C# 내적 (0) | 2021.07.23 |
댓글