programmers.co.kr/learn/courses/30/lessons/42885
그리드 문제로 가장 작은 사람과 가장 큰 사람이 보트에 동시에 탈수있는지 없는지로 해결하는 문제
상당히 간단한 문제인데 저는 처음에 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 |