[문제]
백준 문제 : https://www.acmicpc.net/problem/1427
문제 :
배열을 정렬하는 것은 쉽다. 수가 주어지면, 그 수의 각 자리수를 내림차순으로 정렬해보자.
입력 :
첫째 줄에 정렬하려고 하는 수 N이 주어진다. N은 1,000,000,000보다 작거나 같은 자연수이다.
출력 :
첫째 줄에 자리수를 내림차순으로 정렬한 수를 출력한다.
[코드 풀이]
[실패한 코딩]
[성공한 코딩]
더보기
문자열로 입력받고, 문자 배열로 바꾸고, 어차피 정수, char니까 정렬하는데 sort 써버리자.
#include <bits/stdc++.h>
using namespace std;
int main() {
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
string str;
int num;
cin >> str;
num = str.length();
char* chars = new char[num];
str.copy(chars, str.length() + 1);
sort(chars, chars + num);
for (int i = num-1; i >= 0; i--) {
printf("%c", chars[i]);
}
//cout << chars;
return 0;
}
[후기 및 배운 점]
근데 sort를 쓰면 안 됐나?? 좀 쉬운 문제라 직접 구현했어야 했나??
#sort를 아예 내림차순으로 바꾸려고 했으나, 실패했다. greater<char>, less<char>가 안 되던 이유가 뭘까
#또한 for문으로 하나 씩 출력할 때 쓰레기값이 있는 원소가 있었다. 그래서 바로 문자열로 출력할 수 없었다.
'[개발]자국 > [백준]' 카테고리의 다른 글
[백준] 9095 번 : 1,2,3 더하기 / C++ (0) | 2024.05.27 |
---|---|
[백준] 1024 번 : 수열의 합 / C++ (0) | 2023.08.28 |
[백준] 1032 번 : 명령 프롬프트 / C++ (0) | 2023.07.28 |
[백준] 1011 번 : Fly me to the Alpha Centauri / C++ (0) | 2023.07.25 |
[백준] 1026 번 : 보물 / C++ (0) | 2023.07.23 |