반응형
출처 : programmers.co.kr/learn/courses/30/lessons/42885
풀이
1. 최대 2명 씩 밖에 탈 수 없다는게 큰 주의사항이다.
2. 정렬 후 , 몸무게가 가장 적은 사람과 가장 큰 사람을 태우려고 해야한다.
3. 작은 사람 2명 태우고 무게 남으면 아까우니까!
4. 조건에서 R>Lindex 로 해서 틀렸는데, R >= Lindex 로 수정해야 했다.
5. 중간에 겹치는 사람은 어차피 태워야 하니까, 계산조건에서 2명으로 계산 되긴하지만,
어차피 else 조건에서 answer ++ 증가 된다.
코드
import java.util.*;
public class Solution {
public int solution(int[] people, int limit) {
int answer = 0;
int Lindex = 0;
Arrays.sort(people);
for( int R = people.length-1; R>=Lindex; R--){
// 둘다 채울 수 있으면 태우고 가장 적은 친구 증가
if( people[Lindex] + people[R] <= limit){
Lindex++;
answer ++;
}else{
answer ++;
}
}
return answer;
}
}
반응형
'알고리즘' 카테고리의 다른 글
[프로그래머스] 섬 연결하기 level-3 [JAVA] (0) | 2020.11.12 |
---|---|
[프로그래머스] 단어 변환 level3 [JAVA] (0) | 2020.11.12 |
[프로그래머스] 더 맵게 [java] (0) | 2020.11.09 |
[프로그래머스] 가장 큰 수 [JAVA] (0) | 2020.11.09 |
[프로그래머스] 소수 찾기 Level 2 [ JAVA ] (0) | 2020.11.08 |