[백준 BOJ] 15688번 수 정렬하기 5 (C++/cpp)

2022. 8. 17. 10:48PS (Program Solving)/BOJ (백준)

문제 설명

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

 

15688번: 수 정렬하기 5

첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 숫자가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이며, 같은 수가 여러 번 중복될 수도 있다.

www.acmicpc.net

백준 BOJ 15688번 수 정렬하기 5 문제 사진1
백준 BOJ 15688번 수 정렬하기 5 문제 사진2

 

접근 방법 - 정렬 함수를 이용한 기본 문제

백준의 15688번 문제는 정렬 함수를 이용하여 간단히 해결할 수 있는 문제이다.

해당 문제는, 입력받은 숫자들을 오름차순으로 정렬하여 출력해야 하는 문제이다.

이 문제의 경우엔, 다른 정렬 문제에 비해 입력값들이 많기 때문에 상당히 어렵게 다가올 수도 있는 문제이다.

하지만 간단한 정렬 함수의 사용만 안다면 이 문제마저도 우리는 아주 쉽게 해결할 수 있다.

cpp의 정렬 함수에 관한 내용을 아래에 기재하니, 혹시나 몰랐다면 아래를 꼭 참고해보길 바란다.

(sort() 함수는 해당 문제 말고도 사소한 정렬이 필요할 때 많이 쓰이니 알아두면 좋을 것이다.)

#include <algorithm>
sort(array, array+length);

이에 대한 자세한 사용법은 아래의 코드를 참고해보길 바란다.

필자는 아래처럼 코드를 작성하여 문제를 해결하였다.

 

성공한 코드

#define _CRT_SECURE_NO_WARNINGS
#pragma warning(disable: 4996)
#include <iostream>
#include <algorithm>
#define endl '\n'
using namespace std;

//백준 15688번 코드
int arr[1000001];
int main() {
	ios::sync_with_stdio(false);
	cin.tie(NULL);	cout.tie(NULL);

	int n;
	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] << endl;
	}
}

 

제출 결과

백준 BOJ 15688번 수 정렬하기 5 문제 C++ 제출 결과

(2022.08.01 백준 15688번 문제 제출 결과)

반응형