View
알고리즘 분류: 구현, 정렬
문제 링크: https://www.acmicpc.net/problem/2750
【 문제 】
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
'Problem Solving > Baekjoon' 카테고리의 다른 글
[백준] 10828번: 스택 [C++] (0) | 2023.04.09 |
---|---|
[백준] 2751번: 수 정렬하기 2 [C/C++] (0) | 2023.04.07 |
[백준] 1436번: 영화감독 숌 [C/C++] (1) | 2023.04.05 |
[백준] 7568번: 덩치 [C/C++] (1) | 2023.04.04 |
[백준] 11866번: 요세푸스 문제 0 [C/C++] (0) | 2023.04.03 |
reply