Deff_Dev
[백준] 좋다 (C++) 본문
문제
https://www.acmicpc.net/problem/1253
풀이
이 문제는 이분 탐색 문제로, 입력된 숫자들을 오름차순으로 정렬한 후, 좋은 숫자의 갯수를 구하는 방법으로 풀이했다.
#include<iostream>
#include<vector>
#include<algorithm>
// https://www.acmicpc.net/problem/1253
using namespace std;
int main() {
int n;
cin >> n;
vector<int> vec(n);
for (int i = 0; i < n; i++) {
cin >> vec[i];
}
sort(vec.begin(), vec.end() );
int count = 0;
for (int i = n - 1; i >= 0; i--) {
int left = 0, right = n - 1, target = vec[i];
while (left < right) {
if (i == right) {
right--;
}
else if (i == left)
{
left++;
}
else {
int num = vec[left] + vec[right];
if (num == target) {
count++;
break;
}
else if (num > target) {
right--;
}
else {
left++;
}
}
}
}
cout << count;
return 0;
}
'코딩테스트 > 백준' 카테고리의 다른 글
[백준] 1026번 보물 (C++) (0) | 2024.09.06 |
---|---|
[백준] 2583번 영역 구하기 (C++) (1) | 2024.09.06 |
[백준] 나무꾼 이다솜 (C++) (1) | 2024.09.05 |
[백준] 1461번 도서관 (C++) (2) | 2024.09.02 |
[백준] 1058번 친구 (C++) (0) | 2024.09.02 |