문제
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)
'Koala - 19기 > 코딩테스트 심화 스터디' 카테고리의 다른 글
[codetree] A / B 출력 (0) | 2025.07.20 |
---|---|
[python/백준] 11059: 크리문자열 (0) | 2025.07.20 |
[백준 / Python] 10211 : Maximum Subarray (0) | 2025.07.20 |
[백준/Python] #23827 수열(Easy) (0) | 2025.07.20 |
[python] 백준 19951 (0) | 2025.07.16 |