728x90
개요
https://www.acmicpc.net/problem/2230
오랜만에 풀어봤다.
간단한 투포인터 문제다.
Gold V
풀이
입력 값을 vecter나 array에 정렬 후 front 부터 두 value 비교하면 된다.
차이가 M보다 작을 경우 front++ , 아닐 경우 back++ 를 해주면 된다.
코드
#include <bits/stdc++.h>
using namespace std;
constexpr int LIMIT = 1e5 + 2;
const int INF = 1e8 * 21;
int a[LIMIT];
int main()
{
cin.tie(0)->sync_with_stdio(0);
int n, m;
cin >> n >> m;
for (int i = 0; i < n; i++)
cin >> a[i];
sort(a, a + n, less<int>());
int front = 0;
int back = 0;
int result = INF;
while (front < n)
{
int diff = a[back] - a[front];
if(diff >= m)
result = min(result, diff);
if (diff > m || back >= n-1) front++;
else back++;
}
cout << result;
}
이제 다시 달려야지
'알고리즘&자료구조 > 문제' 카테고리의 다른 글
[BOJ/22953번] 도도의 음식 준비 (C++/이분탐색) (1) | 2023.09.18 |
---|---|
[프로그래머스] 체육복 (C++) (0) | 2023.09.16 |
[프로그래머스] 요격시스템 (C++) (2) | 2023.07.08 |
[BOJ/26154번] 한양 가왕 (C++/애드 혹) (2) | 2023.06.06 |
[BOJ] 13016 내 왼손에는 흑염룡이 잠들어 있다 C++ (4) | 2023.06.01 |