1. 문제 접근
- 선택할 수 있는 경우 중 2개를 선택하는, 조합(combination)을 이용해서 문제를 풀어야 함
2. 시행착오
3. 코드 및 풀이
3.1 풀이
- 2개를 고르는 조합은
for
문을 통해 간단히 구현할 수 있음
- 간혹 시간제한이 엄격한 문제가 존재하기 때문에, m이 200,000이 넘는 경우는 무조건 오답이기 때문에, 바로 오답처리 하는 것도 좋은 방법(n <= 100,000)
#include <bits/stdc++.h>
using namespace std;
int n, m;
int ret;
int arr[15004];
int main(){
ios_base::sync_with_stdio(false);
cin.tie(NULL); cout.tie(NULL);
cin >> n >> m;
for(int i = 0; i < n; i++){
cin >> arr[i];
}
if(m > 200000) cout << 0;
else {
for(int i = 0; i < n; i++){
for(int j = i+1; j < n; j++){
int tmp = arr[i] + arr[j];
if (tmp == m) ret++;
}
}
cout << ret;
}
return 0;
}
Reference