Koala - 19기/코딩테스트 심화 스터디
[백준/Python] #2230: 수 고르기
oerreo
2025. 7. 20. 18:13
문제
https://www.acmicpc.net/problem/2230
풀이
1. 수열 오름차순 정렬
2. 투 포인터로 탐색
3. arr[right] - arr[left]가 M 이상이 되는 순간 최소 차이 후보로 갱신
4. arr[right] - arr[left] < M이면 right 증가 그렇지 않으면 left 증가
input = __import__('sys').stdin.readline
N, M = map(int, input().split())
arr = [int(input()) for _ in range(N)]
arr.sort()
left = 0
right = 0
min_diff = float('inf')
while right < N:
diff = arr[right] - arr[left]
if diff < M:
right += 1
else:
min_diff = min(min_diff, diff)
left += 1
if left > right:
right = left
print(min_diff)