초보 개발자의 이야기, 릿허브

[C++] 백준 2751번 수 정렬하기 2 본문

코딩테스트/📗 백준 (BOJ)

[C++] 백준 2751번 수 정렬하기 2

릿99 2021. 11. 26. 14:10
728x90
반응형
1. 문제이해

https://www.acmicpc.net/problem/2751

 

2751번: 수 정렬하기 2

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

www.acmicpc.net

 

N개의 정수가 주어질 때, 이를 오름차순으로 정렬하여 출력하는 것이 목표이다.

 

 

 

2. 문제풀이

 

이전 포스팅인 2750번 수 정렬하기 문제와 거의 동일한 문제이다.

이번에도 N개의 정수를 정렬하기만 하면 되는 간단한 문제이다.

단, 이전 문제와는 다르게 입력받는 수의 범위가 1,000,000 으로 비교적 크다.

하지만, sort 함수를 통해 정렬하는데 문제는 없으므로, 이번에도 입력받은 수들을 배열에 저장 후

C++의 내장함수인 sort 함수를 이용해 정렬해주었다.

(더 효율적인 방법이 있을 수 있지만, 문제에서 요구하는 시간을 초과하지는 않으므로 사용 가능하다.)

 

비슷한 문제로는 2750번 수 정렬하기, 10989번 수 정렬하기3 가 있다.

해당 문제들에 대한 풀이와 소스코드는 아래 포스팅을 참고하자.

 

<2750번 수 정렬하기>

https://beginnerdeveloper-lit.tistory.com/105

 

[C++] 백준 2750번 수 정렬하기

1. 문제이해 https://www.acmicpc.net/problem/2750 2750번: 수 정렬하기 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수 주어진다. 이 수는 절댓값이 1,000보다 작거나 같은..

beginnerdeveloper-lit.tistory.com

 

<10989번 수 정렬하기 3>

https://beginnerdeveloper-lit.tistory.com/107

 

[C++] 백준 10989번 수 정렬하기 3

1. 문제이해 https://www.acmicpc.net/problem/10989 10989번: 수 정렬하기 3 첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 10,000보다 작거나..

beginnerdeveloper-lit.tistory.com

 

 

 

3. 소스코드
#include <iostream>
#include <algorithm>
using namespace std;

int num[1000000];   // 배열의 크기가 크므로 전역범위에서 선언

int main() {
	int N;          // 수의 개수
	cin >> N;

	for (int i = 0; i < N; i++) {
		cin >> num[i];
	}

	sort(num, num + N);

	for (int i = 0; i < N; i++) {
		cout << num[i] << "\n";
	}

	return 0;
}

최대 1,000,000개의 숫자를 입력받을 수 있으므로, 크기가 1,000,000인 배열을 선언한다.

숫자를 입력받아 해당 배열에 저장하고, 내장함수를 이용해 숫자를 정렬, 출력해주었다.

 

 


 

 



 

728x90
반응형