출처: 프로그래머스 코딩 테스트 연습 https://programmers.co.kr/learn/courses/30/lessons/42885
코딩테스트 연습 - 구명보트
무인도에 갇힌 사람들을 구명보트를 이용하여 구출하려고 합니다. 구명보트는 작아서 한 번에 최대 2명씩 밖에 탈 수 없고, 무게 제한도 있습니다. 예를 들어, 사람들의 몸무게가 [70kg, 50kg, 80kg, 5
programmers.co.kr
제출 날짜: 2021년 9월 7일 화요일
생각
정렬하는 것까지는 혼자 생각했지만 그 이후는 방향을 잘못 잡고 풀고 있었다. 힌트(https://programmers.co.kr/questions/15422)를 통해 어떻게 풀어야하는지 감을 잡을 수 있었다.
코드
import java.util.*;
class Solution {
public int solution(int[] people, int limit) {
int answer = 0;
Arrays.sort(people); // 정렬
int start = 0; // 시작 (앞에서 뒤로 이동)
int end = people.length - 1; // 끝 (뒤에서 앞으로 이동)
while(true) {
if(people[start]+people[end] <= limit) {
start++; // 두명 더해서 limit 이하라면 start+1
}
end--; // limit 이상이하 상관 없이 무조건 end-1
answer++;
if(start > end) {
break;
} else if(start==end) { // 마지막에 같다면 횟수 1 추가
answer++;
break;
}
}
return answer;
}
}
'알고리즘 > 프로그래머스' 카테고리의 다른 글
프로그래머스 뉴스 클러스터링 (0) | 2021.09.21 |
---|---|
프로그래머스 메뉴 리뉴얼 (0) | 2021.09.13 |
프로그래머스 순위 검색 (0) | 2021.09.09 |
프로그래머스 거리두기 확인하기 (0) | 2021.08.31 |
프로그래머스 위장 (0) | 2021.08.18 |