in.add()

[42885] 구명보트 본문

Algorithm/Programmers

[42885] 구명보트

idan 2021. 9. 8. 20:55

문제 링크 : https://programmers.co.kr/learn/courses/30/lessons/42885

 

코딩테스트 연습 - 구명보트

무인도에 갇힌 사람들을 구명보트를 이용하여 구출하려고 합니다. 구명보트는 작아서 한 번에 최대 2명씩 밖에 탈 수 없고, 무게 제한도 있습니다. 예를 들어, 사람들의 몸무게가 [70kg, 50kg, 80kg, 5

programmers.co.kr

 

문제 해결 방법

몸무게 배열을 정렬한 후, 가장 가벼운 사람부터 보면서 무게 제한을 넘지 않을 때까지 무거운 사람들을 더하도록 구현했다.

 

import java.util.*;

class Solution {
    public int solution(int[] people, int limit) {
        int answer = 0;
        int idx = people.length - 1;
        
        Arrays.sort(people);
        System.out.println(people[0]);
        
        for(int i = 0; i <= idx; i++) {
            while(idx > i && people[i] + people[idx--] > limit) {
                answer++;
            }
            answer++;
        }
        return answer;
    }
}

'Algorithm > Programmers' 카테고리의 다른 글

[42883] 큰 수 만들기  (0) 2021.09.14
[42746] 가장 큰 수  (0) 2021.09.13
[72412] 순위 검색  (0) 2021.09.07
[72411] 메뉴 리뉴얼  (0) 2021.09.06
[81302] 거리두기 확인하기  (0) 2021.08.31
Comments