2230 - 수 고르기
2025. 2. 17. 16:43ㆍPS/백준
문제
https://www.acmicpc.net/problem/2230
느낀점
투포인터 응용 문제 였는데, 인덱스를 잘못 산정해서 반례를 찾는데 어려움이 있었다. 항상 left, right 인덱스와 엣지 케이스를 잘 생각해보자
풀이
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main()
{
int N;
long long M;
cin >> N >> M;
vector<long long> arr(N);
for (int i = 0; i < N; i++)
{
cin >> arr[i];
}
sort(arr.begin(), arr.end());
int left = 0;
vector<long long> answer;
for (int right = 0; right < N; right++)
{
long long diff = arr[right] - arr[left];
if (diff < M)
{
continue;
}
else
{
answer.push_back(diff);
while (true)
{
long long diff = arr[right] - arr[left];
if (left >= N)
{
break;
}
if (diff < M)
{
break;
}
else
{
left++;
answer.push_back(diff);
}
}
}
}
sort(answer.begin(), answer.end());
cout << answer[0];
return 0;
}
'PS > 백준' 카테고리의 다른 글
3649 - 로봇 프로젝트 (1) | 2025.02.18 |
---|---|
2467 - 용액 (0) | 2025.02.18 |
2118 - 두 개의 탑 (0) | 2025.02.17 |
1484 - 다이어트 (0) | 2025.02.17 |
25916 - 싫은데요 (0) | 2025.02.17 |