Koala - 13기/코딩테스트 준비 스터디
[백준/Python] 2230번: 수 고르기
devhex
2024. 1. 28. 23:47
문제
https://www.acmicpc.net/problem/2230
풀이
해당 문제는 투 포인터를 사용하면 된다.
투 포인터를 사용하기 위해서는, 먼저 정렬을 진행해줘야 한다.
문제의 요구사항은 두 수의 차 중 M보다 가장 작은 차이를 구하는 것이므로, M을 구하게 되면 바로 답이 된다.
나머지의 경우, 차이 값의 최소 값을 갱신하며 찾아가면 된다.
코드
N,M = map(int, input().split())
nums = [int(input()) for _ in range(N)]
nums.sort()
left,right = 0,1
result = 2e9
while left <= right < N:
diff = nums[right]-nums[left]
if diff == M:
result = M
break
elif diff < M:
right += 1
else:
result = min(result, diff)
left += 1
print(result)