C++

[백준 알고리즘] 1427번 : 소트인사이드, c++

2022. 3. 15. 18:56

https://www.acmicpc.net/problem/1427

 

1427번: 소트인사이드

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

www.acmicpc.net

c++로 백준 1427번 문제를 풀어보겠다.

 

 

 

 

 

문제

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

입력

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

출력

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

예제 입력 1 복사

2143

예제 출력 1 복사

4321

 

 

 

 

 

<문제 풀이>

1. 숫자를 문자열 형태로 입력받는다.

2. 숫자 하나씩 순서대로 배열에 저장한다.

3. sort함수를 통해 오름차순으로 정렬한다.

4. 정렬된 배열 안의 숫자들을 뒤에서부터 거꾸로 출력하면 내림차순이 된다.

 

 

 

코드는 다음과 같다.

 

 

 

이 문제에서 유의할 점 : 

 

처음에 숫자를 입력받을 때 문자열 형태로 입력받았으므로, 각각은 int형의 숫자 형태가 아닌 char형의 문자 형태로 저장된다.

그래서 출력할 때 그냥 배열 안의 숫자를 출력하면 48, 50 등과 같이 유니코드가 적용된 숫자로 출력된다.

따라서 출력시 -48을 꼭 해주어야 한다.