#include <iostream>
#include <algorithm>
using namespace std;
int main() {
int N;
cin >> N;
int* 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';
}
delete []arr;
return 0;
}
문제에서 주어진 메모리 공간이 8MB이다.
1 <= N <= 10,000,000이므로
N이 최대라고 가정하면
메모리 초과가 뜬다!
#include <iostream>
using namespace std;
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
int N;
int plus = 0;
cin >> N;
int i = 1;
while(1){
plus = plus + i;
if (plus > N) {i--; break; }
i++;
}
cout << i;
return 0;
}
시간초과가 뜨는데 이유를 모르겠다
ios::sync_with_stdio(0);
cin.tie(0);
를 해보아도 시간초과가 뜬다.
#include <iostream>
using namespace std;
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
long long N;
long long plus = 0;
cin >> N;
int i = 1;
while(1){
plus = plus + i;
if (plus > N) {i--; break; }
i++;
}
cout << i;
return 0;
}
문제에서 N의 최댓값은 4,294,967,295인데
int형의 최댓값은 2,147,483,647이므로
N = 4,294,967,295 일 때
plus > N 가 만족할 수 없으므로
while문은 무한루프에 빠지게 된다 -> 시간초과!