View

반응형

 

 

알고리즘 분류: 구현, 정렬

 

문제 링크: https://www.acmicpc.net/problem/2750

 

2750번: 수 정렬하기

첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000보다 작거나 같은 정수이다. 수는 중복되지 않는다.

www.acmicpc.net

 

 


 

 

【 문제 】

 

N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오.

 

 

【 입력 】

 

첫째 줄에 수의 개수 N(1 <= N <= 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000보다 작거나 같은 정수이다. 수는 중복되지 않는다.

 

 

【 출력 】

 

첫째 줄부터 N개의 줄에 오름차순으로 정렬한 결과를 한 줄에 하나씩 출력한다.

 

 

【 풀이 】

 

이 문제는 다양한 정렬 알고리즘을 구현하여 풀 수 있다.

그러나 C++을 사용한다면 STL인 sort 함수를 이용하여 굉장히 간단히 풀 수 있다.

 

sort 함수는 <algorithm> 이라는 헤더 파일에 정의되어 있고, 벡터와 배열 등 컨테이너를 정렬할 때 사용한다.

기본적으로 오름차순으로 정렬되는 알고리즘이다.

다음과 같은 형식으로 사용된다.

 

  • sort(시작 위치, 끝 위치)

 

시간복잡도는 O(NlogN)이다.

다음은 이를 구현한 소스이다.

 

 

【 C++ 소스 코드 】

 

#include<iostream>
#include<algorithm>		//	sort 함수 사용을 위해 algorithm 헤더 이용
using namespace std;

int arr[1001];

int main(void)
{
	int n;
	cin >> n;
	for (int i = 0; i < n; i++)
		cin >> arr[i];
        
	sort(arr, arr + n);		//	sort 함수 사용
    
	for (int i = 0; i < n; i++)
		cout << arr[i] << endl;
	return 0;
}
728x90
반응형
Share Link
reply
250x250
반응형
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31