[プログラマー]42885号:救命ボート
4925 ワード
コード#コード#
import java.util.Arrays;
public class PRO_42885 {
public static int solution(int[] people, int limit) {
Arrays.sort(people);
int answer = 0;
int min = 0;
int max = people.length - 1;
while (min <= max) {
if (people[min] + people[max] <= limit) ++min;
--max;
++answer;
}
return answer;
}
public static void main(String[] args) {
int[] people = {70, 50, 80, 50};
int limit = 100;
System.out.println(solution(people, limit));
}
}
答えと感じ
体重を昇順に並べる.最小値と最大値を加算した値が限界値以下の場合は、最小値を増やし、最大値を減らしながら答えを増やします.これは二人でボートを使うのと同じだ.条件文を満たさなければ、最大体重の人が一人でボートを使うことを意味し、最大値を減らし、答えを増やすだけだ.
参考資料
Reference
この問題について([プログラマー]42885号:救命ボート), 我々は、より多くの情報をここで見つけました https://velog.io/@doeunllee/프로그래머스-42885번-구명보트テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol