Koala - 14기/코딩테스트 준비 스터디

[백준/Python] 2230번 수고르기

알 수 없는 사용자 2024. 3. 31. 23:15

문제 요약

N개의 길이를 가진 수열에서 차가 M이상이면서 가장 작은 경우의 차를 구하는 문제


입력

N, M이 주어지고 수열이 한줄에 하나씩 입력된다


출력

M 이상인 가장 작은 차


코드


설명

sort로 크기 순으로 정렬한 후 투포인터로 앞에서부터 비교해가며 가장 작은 차를 찾는다

통상적인 투포인터와 비슷하지만 left를 0 right를 len-1로 설정했을 때에는 너무 많은 조건이 생기게 되었어서 앞에서부터 비교하는게 유리하다. 문제에 따라 left와 right를 어떻게 설정하는지가 중요한 것 같다

경우마다 최소값을 리스트에 append하고 최종적으로 최소값을 찾는 방법은 시간초과 문제를 일으킨다. 최소값만 저장해놓고 16줄처럼 비교만 하면서 더 최솟값인 경우만 저장하면 메모리도 시간도 아낄 수 있다.