문제 요약
N개의 길이를 가진 수열에서 차가 M이상이면서 가장 작은 경우의 차를 구하는 문제
입력
N, M이 주어지고 수열이 한줄에 하나씩 입력된다
출력
M 이상인 가장 작은 차
코드
설명
sort로 크기 순으로 정렬한 후 투포인터로 앞에서부터 비교해가며 가장 작은 차를 찾는다
통상적인 투포인터와 비슷하지만 left를 0 right를 len-1로 설정했을 때에는 너무 많은 조건이 생기게 되었어서 앞에서부터 비교하는게 유리하다. 문제에 따라 left와 right를 어떻게 설정하는지가 중요한 것 같다
경우마다 최소값을 리스트에 append하고 최종적으로 최소값을 찾는 방법은 시간초과 문제를 일으킨다. 최소값만 저장해놓고 16줄처럼 비교만 하면서 더 최솟값인 경우만 저장하면 메모리도 시간도 아낄 수 있다.
'Koala - 14기 > 코딩테스트 준비 스터디' 카테고리의 다른 글
[백준/Python3] 2003번: 수들의 합 (0) | 2024.04.01 |
---|---|
[백준/C++] 3190번 뱀 (0) | 2024.04.01 |
[백준/Python] 2470번 두 용액 (0) | 2024.03.31 |
[백준/python] 1063 킹 (0) | 2024.03.31 |
[백준/C++] 1652번 누울 자리를 찾아라 (0) | 2024.03.31 |