[BaekJoon]1427번: 소트인사이드
❓문제
배열을 정렬하는 것은 쉽다. 수가 주어지면, 그 수의 각 자리수를 내림차순으로 정렬해보자.
✏️입력
첫째 줄에 정렬하려고 하는 수 N이 주어진다. N은 1,000,000,000보다 작거나 같은 자연수이다.
📜출력
첫째 줄에 자리수를 내림차순으로 정렬한 수를 출력한다.
💻코드
/*
[백준 1427] 소트인사이드
22-08-27 / c++
< 알고리즘 >
숫자를 입력받고
자리 수를 하나씩 배열에 저장한다
배열 정렬해주고
내림차순 정렬을 해준다
*/
#include<iostream>
#include<algorithm>
using namespace std;
int main(void) {
ios::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
int N;
int iNum[10];
int idx = 0;
//배열 초기화
memset(iNum, -1, 10 * 4);
cin >> N;
while (N != 0) {
iNum[idx++] = N % 10;
N /= 10;
}
sort(iNum, iNum + 10);
for (int k = 9; k >= 0; k--) {
if (iNum[k] == -1) {
break;
}
cout << iNum[k];
}
return 0;
}
void* memset(void* ptr, int value, size_t num);
-
void* ptr : 메모리의 시작 주소
즉, 그 주소를 가리키고 있는 포인터가 위치하는 자리이다. -
value : 메모리에 세팅하고자 하는 값
int 타입으로 받지만 내부에서는unsigned char
로 변환되어서 저장된다.
즉, ‘a’ 같은 문자형도 됨. -
size_t num : 길이
이 길이는 바이트 단위로써 메모리의 크기 한조각 단위의 길이를 말한다.
보통 “길이 * sizeof(데이터타입)” 의 형태로 작성한다.
반환값은 성공하면 첫번째 인자로 들어간 ptr을 반환하고, 실패한다면 NULL을 반환한다. -
헤더파일은 memory.h 혹은 string.h 둘 중 하나를 사용한다.
-