프로그래머스 lv2 구명보트

namkun·2022년 7월 23일
0

코딩테스트

목록 보기
26/79

문제링크

구명보트

풀이

import java.util.Arrays;

class Solution {
    public int solution(int[] people, int limit) {
        int answer = 0;
        Arrays.sort(people);

        int right = people.length - 1;
        int left = 0;

        while(right >= left){
            if(people[left] + people[right] <= limit){
                left++;
            }
            answer++;
            right--;
        }

        return answer;
    }
}

해설

  • 제한조건
    • 구명보트 제한인원 2명
  • 사람들의 몸무게를 담은 배열 people를 정렬한번 해준다.
  • 그 다음에는 왼쪽과 오른쪽 인덱스를 담을 변수인 rightleft를 만들어준다.
  • 그 다음엔 반복문을 도는데, 어차피 보트에 무조건 한명은 탈 수 있기에, answer+1 는 해준다.
  • 가벼운 사람과 무거운 사람의 몸무게를 더했을 때, 최대 무게 수용량인 limit 보다 작다는건 둘 다 탈 수 있다는 것을 말한다.
  • 어쨌건 뒤에서 answer+1은 해주니까, 대신 left 인덱스를 +1 해준다.

소감

  • 스스로 풀지 못한 문제이다.
  • 다음엔 이런 아이디어도 이용해서 한 번 풀어보자.
profile
개발하는 중국학과 사람

0개의 댓글