programmers.co.kr/learn/courses/30/lessons/42885(%EA%B5%AC%EB%AA%85%EB%B3%B4%ED%8A%B8)
코딩테스트 연습 - 구명보트
무인도에 갇힌 사람들을 구명보트를 이용하여 구출하려고 합니다. 구명보트는 작아서 한 번에 최대 2명씩 밖에 탈 수 없고, 무게 제한도 있습니다. 예를 들어, 사람들의 몸무게가 [70kg, 50kg, 80kg, 5
programmers.co.kr
문제풀이:
그리디
1. people 배열을 정렬합니다.
2.1 반복문을 돌면서 배열의 가장 큰 원소(i)와 가장 작은 원소(index)를 더해 limit 보다 크면 answer +1을 해줍니다.
2.2 limit보다 작으면 구명 보트를 같이 탈 수 있기 때문에 answer+1을 해주고 다음 가장 작은 원소(index+1)로 넘어갑니다.
import java.util.Arrays;
class Solution {
	public int solution(int[] people, int limit) {
		int answer = 0;
		
		Arrays.sort(people);
		
		int index = 0;
		for (int i = people.length-1; i >= index; i--) {
			if(people[index]+people[i]>limit) answer++;
			else {
				answer++;
				index++;
			}
		}
		
		System.out.println(answer);
		return answer;
	}
}'ALGORITHM > 프로그래머스 | 백준 | 삼성 | 카카오' 카테고리의 다른 글
| [프로그래머스] 소수 찾기 java (0) | 2021.06.07 | 
|---|---|
| [백준] 2493번 탑 java (0) | 2021.05.06 | 
| [백준] 1795번 암호 만들기 java (0) | 2021.05.04 | 
| [백준] 18222번 투에-모스 문자열 java (0) | 2021.04.16 | 
| [프로그래머스] 2019 카카오 개발자 겨울 인턴십 징검다리 건너기 java (0) | 2021.04.06 |