Deff_Dev

[백준] 좋다 (C++) 본문

코딩테스트/백준

[백준] 좋다 (C++)

Deff_a 2024. 9. 5. 14:34

문제

 

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