programmers.co.kr/learn/courses/30/lessons/42885?language=java
문제 해석
최대 2명밖에 탈 수 없다
무게 제한 만큼의 사람만 탈 수 있다
구명보트를 최대한 적게 사용해서 모든 사람을 구출해야 한다
제한사항
무인도에 갇힌 사람은 1명 이상 50,000명 이하입니다.
각 사람의 몸무게는 40kg 이상 240kg 이하입니다.
구명보트의 무게 제한은 40kg 이상 240kg 이하입니다.
구명보트의 무게 제한은 항상 사람들의 몸무게 중 최댓값보다 크게 주어지므로 사람들을 구출할 수 없는 경우는 없습니다.
문제 풀이
핵심은 2명만 탈 수 있다는것
따라서 최대 몸무게를 가진 사람부터 한명씩 데려갈 수 있는 사람을 데려가면 된다
꼭 제한을 최대한 채울 필요는 없다
10, 20, 30, 50, 50, 70, 80
이경우 80 70 인사람이 10, 20 을 데리고 가든 20, 30을 데리고 가든 사람수는 동일
//원래 사람수만큼 보트가 필요하다고 생각하고
//주어진 사람 몸무게 배열 정렬
//배열에서 양쪽 끝에서 줄여가면서
//양쪽 사람의 합이 제한보다 작거나 같으면 보트를 하나 줄여준다
'알고리즘 문제 풀이' 카테고리의 다른 글
[프로그래머스] 섬 연결하기 (0) | 2021.04.12 |
---|---|
[프로그래머스] 카펫 (0) | 2021.04.11 |
[프로그래머스] 정수 삼각형 - JAVA (0) | 2021.04.03 |
[백준]1로 만들기 - 복습 (0) | 2021.03.31 |
[백준]그룹 단어 체커 - 백준 (0) | 2021.03.31 |
댓글