거인의 코딩일지
[Lv.2_Java] 구명보트 본문
728x90
import java.util.*;
class Solution {
public int solution(int[] people, int limit) {
int answer =0;
Arrays.sort(people);
int num = 0;
for(int i = people.length-1 ; num <= i ; i--){
if(people[i]+ people[num]<= limit){
num++;
answer++;
}else{
answer++;
}
}
return answer;
}
}
이 문제를 처음 보고 이중for문을 돌려야겠다라고 생각하고 코드를 작성했으나 중복되는것이 발생하여 자꾸 계산 실패라고 나타났다....
그래서 생각을 다르게 해서 아예 오름차순으로 배열을 정렬시킨뒤 맨 앞과 맨뒤부터 더해나가면서 해보기로 했다
num 이라는 변수는 0 이라고 첫 설정 하고 i는 배열의 크기보다 1 작은수를 배치시키고 for 문이 돌면서 i를 빼주고 조건에 맞는것이 발생한다면 하나하나 올라가서 계산할 수 있도록 설정해보았다!
결과는 클리어~!
728x90
'알고리즘테스트 > Programmers' 카테고리의 다른 글
[Lv.2_Java] 피보나치 수 (0) | 2023.05.04 |
---|---|
[Lv.1_Java] 행렬의 덧셈 (0) | 2023.05.03 |
[Lv.2_Java] 숫자의 표현 (0) | 2023.05.03 |
[Lv.0_Java] 치킨 쿠폰 (0) | 2023.05.03 |
[Lv.0_Java] 카운트업!! (0) | 2023.05.01 |