1. 문제 링크

www.acmicpc.net/problem/2750

 

2750번: 수 정렬하기

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

www.acmicpc.net

 

 

 

2. 문제 설명

N개의 수를 입력받은 후, 오름차순으로 정렬하여 출력하는 문제입니다.

 

 

 

3. 소스코드

BOJ 2750번 수 정렬하기 C++ 풀이입니다.

#include <iostream>
#include <algorithm>
using namespace std;

int main(void)
{
	ios::sync_with_stdio(0);
	cin.tie(0);

	int N;
	int arr[1000];
	cin >> N;
	for (int i = 0; i < N; i++)
		cin >> arr[i];

	sort(arr, arr + N);
	for (int i = 0; i < N; i++)
		cout << arr[i] << '\n';

	return 0;
}

sort함수를 이용한 풀이입니다.

sort함수를 사용하기 위해서는 <algorithm> 헤더 파일을 include 해줘야 합니다.

sort함수의 사용법은 sort(시작 지점, 끝 지점) 입니다.

시작 지점을 포함하고, 끝 지점을 포함하지 않는 범위까지 오름차순으로 정렬을 해줍니다.

 

#include <iostream>
using namespace std;

int main(void)
{
	ios::sync_with_stdio(0);
	cin.tie(0);

	int N;
	int arr[1000];
	cin >> N;
	for (int i = 0; i < N; i++)
		cin >> arr[i];

	for (int i = 1; i < N; i++) {
		int temp = arr[i];
		int j;
		for (j = i - 1; j >= 0; j--) {
			if (arr[j] > temp)
				arr[j + 1] = arr[j];
			else
				break;
		}
		arr[j + 1] = temp;
	}
	for (int i = 0; i < N; i++)
		cout << arr[i] << '\n';

	return 0;
}

삽입 정렬을 이용한 풀이입니다.

+ Recent posts