문제
문제 바로가기> BOJ 2230번: 수 고르기
풀이
정렬과 투 포인터를 이용하여 O(nlogn) 안에 문제를 해결할 수 있다.
#include<iostream>
#include<algorithm>
#define MAX 100001
using namespace std;
int N, M;
int num[MAX];
void input() {
cin >> N >> M;
for (int i = 0; i < N; i++) cin >> num[i];
}
void solution() {
sort(num, num + N);
int ans = 2000000001, l = 0, r = 1, diff;
while (r < N) {
diff = num[r] - num[l];
if (diff >= M) {
ans = min(ans, diff);
l++;
}
else r++;
}
cout << ans;
}
int main() {
ios_base::sync_with_stdio(0); cin.tie(0);
input();
solution();
}
'문제 풀이 > 백준' 카테고리의 다른 글
BOJ 2304번: 창고 다각형 (0) | 2023.09.05 |
---|---|
BOJ 17485번: 진우의 달 여행 (Large) (0) | 2023.09.04 |
BOJ 16928번: 뱀과 사다리 게임 (0) | 2023.08.29 |
BOJ 1347번: 미로 만들기 (0) | 2023.08.08 |
BOJ 9207번: 페그 솔리테어 (1) | 2023.05.16 |