문제
문제 풀이
해당 문제를 투포인터 알고리즘을 활용하여 처리하였다.
people 배열을 정렬을 한 뒤, 제일 큰 값과 작은 값을 더했을 때, limit 보다 작은 경우 left, right 둘다 이동.
초과를 하면 right만 이동시키는 방식으로 처리 하였다.
나의 답안
public static int solution(int[] people, int limit) {
Arrays.sort(people);
int answer = 0;
int left = 0;
int right = people.length - 1;
while (left <= right) {
if (people[left] + people[right] <= limit) left++;
right--;
answer++;
}
return answer;
}