NovelAI Diffusion V4 Full プライベートテスト、近日公開 by 不気味の谷
353 단어
2 분
백준 10989번 C++ 풀이
백준 10989번 문제 c++ 풀이
문제
N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오.
입력
첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 10,000보다 작거나 같은 자연수이다.
출력
첫째 줄부터 N개의 줄에 오름차순으로 정렬한 결과를 한 줄에 하나씩 출력한다.
예제 입력
입력:
10
5
2
3
1
4
2
3
5
1
7
출력:
1
1
2
2
3
3
4
5
5
7
아이디어
- 숫자를 입력받습니다.
- sort를 이용해 정렬합니다.
1차 시도
#include <algorithm>
#include <iostream>
using namespace std;
int N;
int* arr;
int main()
{
cin >> N;
arr = new int[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이 10,000,000까지 되는데 각 숫자는 또 10,000까지 나올 수 있어 최소 short 자료형을 써야하기에 최대 용량은 20MB입니다. 하지만 정렬 문제라 순서가 상관없기에 10,000칸짜리 배열만들고 각 인덱스를 입력된 숫자로 취급하여 적용하면 풀 수 있습니다. 하지만 저는 답지를 보고 안 것이기에 문제를 풀지 않았습니다.
