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

병찬·2022년 4월 3일
0

프로그래머스

목록 보기
44/52
post-thumbnail

문제📝


풀이💡

  • people 배열을 정렬하고 사람의 위치를 알려주기 위해 idx 변수를 선언한다.
  • 몸무게가 가장 무거운 사람부터 최소+최대 몸무게가 limit보다 작거나 같을 때 idx랑 answer를 증가시킨다.
  • 그렇지 않은 경우 answer만 증가하고 idx 위치는 그대로 냅둔다.

코드💻

/*
 * 프로그래머스 Lv2 - 구명보트
 * 문제링크: https://programmers.co.kr/learn/courses/30/lessons/42885
*/

import java.util.*;

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

결과😎


느낀점👨‍💻

문제를 처음보았을 때 지문이 길어서 생각보다 어려운 문제구나 생각을 하였는데 읽어보니 조합을 통해서 최소의 구명보트 횟수를 구하는거였다. 그래서 일단은 정렬을 하면 좋겠다 생각해서 정렬을 하였고 최소+최대를 더하는 방식으로 하였더니 문제를 해결할 수 있었다.


Sinbmil의 알고리즘 문제 코드

-> https://github.com/Sinbmil/Algorithm-Study

profile
코딩을 열심히 하고 있습니다:)

0개의 댓글