순간을 성실히, 화려함보단 꾸준함을

[ boj : 1253 ] 좋다 본문

알고리즘,SQL/백준,BOJ

[ boj : 1253 ] 좋다

폭발토끼 2021. 9. 19. 20:41

https://www.acmicpc.net/problem/1253

 

1253번: 좋다

첫째 줄에는 수의 개수 N(1 ≤ N ≤ 2,000), 두 번째 줄에는 i번째 수를 나타내는 Ai가 N개 주어진다. (|Ai| ≤ 1,000,000,000, Ai는 정수)

www.acmicpc.net

해설 : 대표적인 투포인터 문제입니다.

해당 수만 제외한 배열에서 크면 r-- 작으면  l++ 로 범위를 줄여나아가면 됩니다.

 

#include<bits/stdc++.h>

using namespace std;

int arr[2000];

int main()
{
	int n;
	cin >> n;
	for (int i = 0; i < n; i++)cin >> arr[i];
	sort(arr, arr + n);
	int cnt = 0;
	for (int i = 0; i < n; i++) {		
		vector<int> v;
		for (int j = 0; j < n; j++)
			if (i != j)
				v.push_back(arr[j]);

		int l = 0, r = v.size() - 1;
		while (l < r) {

			int m = v[l] + v[r];
			if (m == arr[i]) {
				cnt++;
				break;
			}
			else if (m > arr[i])r--;
			else l++;
		}
	}
	cout << cnt;
	return 0;
}

'알고리즘,SQL > 백준,BOJ' 카테고리의 다른 글

[ boj : 14722 ] 우유 도시  (0) 2021.09.25
[ boj : 17135 ] 캐슬 디펜스  (0) 2021.09.20
[ boj : 1595 ] 북쪽나라의 도로  (0) 2021.09.17
[ boj : 1231 ] 주식왕 동호  (0) 2021.09.15
[ boj : 2831 ] 댄스 파티  (0) 2021.09.04