[프로그래머스 알고리즘 고득점 Kit][그리디][Java] 구명보트

2026. 8. 14. 17:18·알고리즘 & 자료구조/문제 풀이

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

 

프로그래머스

SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 

사람들의 몸무게를 오름차순으로 정렬하고, 가장 가벼운 사람과 가장 무거운 사람을 비교한다.

  • 두 사람의 무게 합이 제한을 초과하면 가장 무거운 사람만 태운다.
  • 제한 이하라면 두 사람을 함께 태운다.
  • 구조한 사람의 수가 전체 인원과 같아질 때까지 반복한다.

가장 무거운 사람이 가장 가벼운 사람과도 함께 탈 수 없다면 누구와도 함께 탈 수 없으므로 혼자 태워도 된다.

 

※ 마지막 한 명이 남으면 동일한 인덱스의 무게를 두 번 더하게 되지만, 보트 수는 정확히 한 번 증가하고 반복문이 종료되므로 결과에는 영향을 주지 않는다.

  • 정렬: O(N log N)
  • 두 포인터 탐색: O(N)
  • 전체 시간복잡도: O(N log N)

 

import java.util.*;

class Solution {
    public int solution(int[] people, int limit) {
        Arrays.sort(people);
        
        int peopleCnt = people.length;
        int rescuedCnt = 0;
        int moveCnt = 0;
        int lightWeightIdx = 0;
        int heavyWeightIdx = peopleCnt - 1;
        
        while(rescuedCnt < peopleCnt) {
            int sum = people[lightWeightIdx] + people[heavyWeightIdx];
            if(sum > limit) {
                heavyWeightIdx -= 1;
                moveCnt += 1;
                rescuedCnt += 1;
            } else {
                lightWeightIdx += 1;
                heavyWeightIdx -= 1;
                moveCnt += 1;
                rescuedCnt += 2;
            }
        }
        
        return moveCnt;
    }
}

 

 

저작자표시 비영리 변경금지 (새창열림)

'알고리즘 & 자료구조 > 문제 풀이' 카테고리의 다른 글

[프로그래머스 알고리즘 고득점 Kit][그리디][Java] 섬 연결하기  (0) 2026.08.15
[프로그래머스 알고리즘 고득점 Kit][그리디][Java] 큰 수 만들기  (1) 2026.08.10
[프로그래머스 알고리즘 고득점 Kit][힙(Heap)][Java] 디스크 컨트롤러  (0) 2026.08.05
[프로그래머스 알고리즘 고득점 Kit][그리디][Java] 조이스틱  (0) 2026.08.02
[프로그래머스 알고리즘 고득점 Kit][스택/큐][Java] 주식가격  (0) 2026.07.29
'알고리즘 & 자료구조/문제 풀이' 카테고리의 다른 글
  • [프로그래머스 알고리즘 고득점 Kit][그리디][Java] 섬 연결하기
  • [프로그래머스 알고리즘 고득점 Kit][그리디][Java] 큰 수 만들기
  • [프로그래머스 알고리즘 고득점 Kit][힙(Heap)][Java] 디스크 컨트롤러
  • [프로그래머스 알고리즘 고득점 Kit][그리디][Java] 조이스틱
수수다
수수다
우하하
  • 수수다
    그냥살자
    수수다
  • 전체
    오늘
    어제
    • 분류 전체보기 (92)
      • 프로젝트 (2)
      • 알고리즘 & 자료구조 (49)
        • 내용 정리 (2)
        • 문제 풀이 (47)
      • 데이터베이스 (37)
        • 내용 정리 (1)
        • 문제 풀이 (36)
      • CS (2)
      • 기타 (2)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • 네이버 블로그
  • 공지사항

  • 인기 글

  • 태그

    그래프
    Lv2
    AVG
    date_format
    이분탐색
    mysql
    coalesce
    유니온파인드
    완전탐색
    정렬
    bfs
    동적계획법
    알고리즘
    코딩테스트
    코테
    백트래킹
    DP
    Stack
    SQL
    SUBSTR
    깊이/너비 우선 탐색(DFS/BFS)
    union-find
    프로그래머스
    프로그래머스 알고리즘 고득점 kit
    IFNULL
    해시
    Round
    Java
    분리집합
    dfs
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
수수다
[프로그래머스 알고리즘 고득점 Kit][그리디][Java] 구명보트
상단으로

티스토리툴바