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)