본문 바로가기
이론/코딩테스트

[백준] 3273번 두 수의 합 (투포인터 알고리즘)

by 퇴근후개발 2022. 7. 29.
반응형

-문제

-코드

#include<stdio.h>
#include<vector>
#include<algorithm>
using namespace std;

int main()
{
	int n, x, cnt = 0;
	scanf("%d", &n);
	vector<int> a(n);
	for (int i = 0; i < n; i++)
	{
		scanf("%d", &a[i]);
	}
	scanf("%d", &x);
	sort(a.begin(), a.end());

	int p1=0, p2=n-1;
	while (p1< p2)
	{
		
		if (a[p1] + a[p2] < x)
		{
			p1++;
		}
		else if (a[p1] + a[p2] > x)
		{
			p2--;
		}
		else
		{
			cnt++;
			p1++;
			p2--;
		}
	}


	printf("%d", cnt);
	return 0;
}
반응형