programmers.co.kr/learn/courses/30/lessons/42885
코딩테스트 연습 - 구명보트
무인도에 갇힌 사람들을 구명보트를 이용하여 구출하려고 합니다. 구명보트는 작아서 한 번에 최대 2명씩 밖에 탈 수 없고, 무게 제한도 있습니다. 예를 들어, 사람들의 몸무게가 [70kg, 50kg, 80kg, 5
programmers.co.kr
그리드 문제로 가장 작은 사람과 가장 큰 사람이 보트에 동시에 탈수있는지 없는지로 해결하는 문제
상당히 간단한 문제인데 저는 처음에 limit에서 가장 큰사람을 빼고 남은 무게에 가장 가까운 사람을 같이 태워 보내야한다고 생각을 했습니다.
사람의 무게가 1 2 3 4 6 7이고 제한이 10일때
(1, 7), (2, 6), (3, 4)
(3, 7), (4, 6), (1, 2)
두가지 모두 이용하는 배의수는 같은데 말이죠...
import java.util.Arrays;
// 프로그래머스 구명보트 문제
class LifeBoat {
public int solution(int[] people, int limit) {
int answer = 0;
// 정렬
Arrays.sort(people);
int min = 0; // 가장 작은 값의 idx 값
for(int max = people.length - 1; min <= max; max--) {
// 가장 큰값과 가장 작은 값의 합이 구명보트의 제한보다 작거나 같은경우 둘을 같이 처리
if(people[min] + people[max] <= limit) {
min++;
}
answer++;
}
return answer;
}
}
'코딩 테스트 > 프로그래머스' 카테고리의 다른 글
프로그래머스 - 정수삼각형 문제 (자바) (0) | 2021.03.15 |
---|---|
프로그래머스 - 이중우선순위 큐 문제 (자바) (0) | 2021.03.15 |
프로그래머스 - 섬 연결하기 문제 - 자바 (0) | 2021.03.13 |
프로그래머스 - 가장 큰 수 문제 - 자바 (0) | 2021.03.13 |
프로그래머스 - 베스트 앨범 문제 - 자바 (0) | 2021.03.13 |