[프로그래머스] 구명보트(Java, 자바)

giggle·2023년 7월 25일
0

문제

구명보트


📌 아이디어

해당 문제는 최대 2명이 탑승할 수 있고, 보트를 탈 수 있는 최소 횟수를 구하는 문제이기 때문에 정렬을 필수적으로 해야합니다.

  1. 오름차순 정렬을 진행합니다.
  2. 시작점과 끝점을 나누어 탐색을 진행합니다.
  3. 만약 시작점과 끝점의 합이 limit을 초과하지 않는다면 정답을 추가하고, 시작점과 끝점을 이동합니다.
  4. 그 외의 경우라면 끝점만을 이동해 정답을 추가합니다.

📌 코드

import java.util.*;

class Solution {
    public int solution(int[] people, int limit) {
        int answer = 0;
        Arrays.sort(people);
        
        int min_idx = 0;
        int max_idx = people.length - 1;
        
        while (min_idx <= max_idx) {
            if (people[min_idx] + people[max_idx] <= limit) {
                answer++;
                min_idx++;
                max_idx--;
                
            } else {
                answer++;
                max_idx--;
            }
        }
        return answer;
    }
}

피드백 및 개선점은 댓글을 통해 알려주세요😊

profile
배움을 글로 기록하는 개발자가 되겠습니다.

1개의 댓글

comment-user-thumbnail
2023년 7월 25일

좋은 글이네요. 공유해주셔서 감사합니다.

답글 달기