[프로그래머스] 구명보트 (java)

HaYeong Jang·2021년 3월 28일
0
post-thumbnail

🔗 문제링크

https://programmers.co.kr/learn/courses/30/lessons/42885

👩🏻‍💻 코드

import java.util.Arrays;

class Solution {
    public int solution(int[] people, int limit) {
        int answer = 0;
        int min_idx = 0;
        int max_idx = people.length - 1;

        Arrays.sort(people);
        while (min_idx <= max_idx) {
            if (people[min_idx] + people[max_idx] <= limit) {
                min_idx++;
            }
            max_idx--;
            answer++;
        }

        return answer;
    }
}

📝 정리

처음에 "구명보트는 작아서 한 번에 최대 2명씩 밖에 탈 수 없다" 는 것을 놓치고 생각해서 앞에서부터 순차적으로 생각했다.

최대 2명이므로 가장 몸무게가 적게 나가는 사람과 가장 몸무게가 많이 나가는 사람을 같이 태울 수 있느냐 없느냐를 판단해 주면 되었다.

같이 태울 수 있다면 => 둘 다 태워보내기 (min_idx++, max_idx--)
같이 태울 수 없다면 => 무거운 사람만 태워보내기 (max_idx--)
profile
기억하기 위해 기록하는 개발로그👣

0개의 댓글