#73. 백준 2750번 문제 풀이: 수 정렬하기 | 문제 원본 보기 |
--입력-- 5 5 2 3 4 1 --출력-- 1 2 3 4 5
수를 정렬해서 출력하는 문제이다. 1. 주어진 수를 받아서 배열에 넣고, 2. 배열에 있는 수를 오름차순으로 정렬 한 후, 3. 출력해 준다. 문제의 조건에서 정렬 알고리즘을 구현하라는 조건이 없고, 다른 문제에서 알고리즘 구현이 많기 때문에, 여기서는 각 언어에서 제공하는 내장 소팅함수를 사용해서 처리해 보도록 하겠다. 창고로 대표적인 언어의 소팅함수를 간단히 소개하면, 파이썬: sort , sorted 함수 C언어: qsort 함수 C++: sort 함수
C++의 algorithm 에 포함된 sort 함수는 아래와 같은 형태를 가지고 있다. void sort(T first, T last) void sort(T first, T last, Compare comp) 배열의 시작점과 끝점, 그리고 선택적으로 비교함수가 필요하다. C언어의 qsort 함수보다도 속도가 더 빠르다.
#include <iostream>
#include <algorithm>
using namespace std;
int main() {
int i, N;
int NS[1000]; // 숫자들을 저장할 리스트
cin >> N; // 숫자를 입력받아 정수형으로 변환 후 N(수의 개수)에 대입
for(i = 0; i < N; i++) { // N번 반복
cin >> NS[i]; // 숫자를 하나씩 입력받아 리스트에 추가
}
// 문제에서 정렬 알고리즘을 구현하라는 조건이 없기 때문에 내장함수 sort 사용
sort(NS, NS + N); // 리스트 전용함수 sort 사용
for(i = 0; i < N; i++) cout << NS[i] << '\n';
// 정렬된 리스트를 개수 만큼 하나씩 출력
return 0;
}