WalkerJei's Lifelog

백준알고리즘 1427번 소트인사이드 C# 본문

소프트웨어 개발/코딩테스트(기성 문제)

백준알고리즘 1427번 소트인사이드 C#

WalkerJei 2025. 4. 17. 00:16

세부 정보

  • 사이트: 백준알고리즘
  • 번호: 1427
  • 문제명: 소트인사이드
  • 언어: C#
  • 분류: 문자열, 정렬
  • 비고: 

 

문제

배열을 정렬하는 것은 쉽다. 수가 주어지면, 그 수의 각 자리수를 내림차순으로 정렬해보자.

 

입력

첫째 줄에 정렬하려고 하는 수 N이 주어진다. N은 1,000,000,000보다 작거나 같은 자연수이다.

 

출력

첫째 줄에 자리수를 내림차순으로 정렬한 수를 출력한다.

 

풀이

OrderByDescending()을 그냥 입력하면 작동을 하지 않는다. 그러더라도 당황하지 말고 괄호 안에 (x => x)라도 넣어주면 정상적으로 작동할 수 있다.

StreamReader sr = new StreamReader(Console.OpenStandardInput());
StreamWriter sw = new StreamWriter(Console.OpenStandardOutput());

string n = sr.ReadLine();
char[] number = new char[n.Length];

// 배열에 입력한 값을 대입
for (int i = 0; i < n.Length; i++)
    number[i] = n[i];

// 내림차순으로 정렬해 출력
foreach (char c in number.OrderByDescending(x => x))
    sw.Write(c);

sr.Close();
sw.Close();

 

후기

이러한 문제는 짧지만 당황하기 쉬운 문제다. 이전에 배운 OrderByDescending()을 복습하는 문제이기도 했다. OrderDescending()으로도 해 보았는데 컴파일 에러가 나는 것으로 보아 OrderByDescending()과 OrderDescending()은 서로 다른 것이라고 할 수 있을 것이다.