https://www.acmicpc.net/problem/2230
2230번: 수 고르기
N개의 정수로 이루어진 수열 A[1], A[2], …, A[N]이 있다. 이 수열에서 두 수를 골랐을 때(같은 수일 수도 있다), 그 차이가 M 이상이면서 제일 작은 경우를 구하는 프로그램을 작성하시오. 예를 들어
www.acmicpc.net
문제 분석
난이도
골드 5
분류
투포인터
문제 풀이
전형적인 투 포인터 문제, 투 포인터를 사용하기 위해 정렬해준 뒤 앞 포인터와 뒤 포인터의 차이를 이용해 투 포인터를 진행시키면 되는 문제이다.
소스코드
from sys import stdin
input=stdin.readline
n,m=map(int,input().split())
arr=[int(input()) for i in range(n)]
arr.sort()
f=0
b=0
ans=1e15
while f < n and b<n:
dif=arr[b]-arr[f]
if dif<m:
b+=1
else:
ans=min(ans,dif)
f+=1
print(ans)
'Koala - 14기 > 코딩테스트 준비 스터디' 카테고리의 다른 글
[백준/C++] 1652번 누울 자리를 찾아라 (0) | 2024.03.31 |
---|---|
백준 9996번 한국이 그리울 땐 서버에 접속하지 C++ (0) | 2024.03.31 |
[백준/C++] 5635번: 생일 (0) | 2024.03.28 |
[백준/Python] 2473 - 세 용액 (0) | 2024.03.27 |
[백준/Python3] 15961 - 회전초밥 (0) | 2024.03.27 |