반응형
한번 동적할당을 하고 이중 포문을 이용해서 코드를 짰는데
시간초과가 났다..
그래서 두번 공적할당을 하고 합을 구하는 과정에서 시간복잡도를 줄였다..
#include <iostream>
#include <algorithm>
using namespace std;
int main() {
ios::sync_with_stdio(0);
cin.tie(nullptr);
int num ;
int* arr;
cin >> num;
arr = new int[num];
for (int i = 0; i < num; i++) cin >> arr[i];
int sum=10,fre=0;
cin >> sum;
int* N = new int[sum+1];
for (int i = 0; i < sum+1; i++) N[i] = 0;
for (int i = 0; i < num; i++) {
if (sum >= arr[i]) {
if (N[sum - arr[i]]) fre++;
N[arr[i]]++;
}
}
cout << fre;
delete[] N;
delete[] arr;
}
반응형
'BOJ > [ BOJ ] C++' 카테고리의 다른 글
[ C++ ] #25305 커트라인 (0) | 2022.11.18 |
---|---|
[ C++ ] #5397 ( 키로커 ) (0) | 2022.02.27 |
[ C++ ] #1475 ( 방 번호 ) (0) | 2022.02.21 |
[ C++ ] #2577 ( 숫자의 개수 ) (0) | 2022.02.20 |
[ C++ ] #2443 ( 별 찍기 - 6 ) (0) | 2022.02.13 |