코테/프로그래머스
[프로그래머스/Lv. 2] 구명보트
imname1am
2023. 4. 9. 18:19
반응형
🔺 문제
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
🔺 코드
[알고리즘] 프로그래머스 - 구명보트 - 자바
https://programmers.co.kr/learn/courses/30/lessons/42885 코딩테스트 연습 - 구명보트 무인도에 갇힌 사람들을 구명보트를 이용하여 구출하려고 합니다. 구명보트는 작아서 한 번에 최대 2명씩 밖에 탈 수 없
easybrother0103.tistory.com
import java.util.*;
class Solution {
public int solution(int[] people, int limit) {
int answer = 0;
Arrays.sort(people);
int idx = 0; // 가벼운 사람 위치
for(int i = people.length - 1 ; i >= idx ; i--) { // i: 무거운 사람 위치
if(people[i] + people[idx] <= limit) { // ⭐ 가벼운 사람과 무거운 사람 같이 태우기
idx++; // 가벼운 사람 태우기
}
answer++; // 보트 수 +1
}
return answer;
}
}
✅ 해결 아이디어
- 무게순으로 정렬하고, 가장 무거운 사람과 가장 가벼운 사람을 함께 보트에 태워보내기
🔺 다른 풀이들
- 풀이1) 투 포인터 활용
[프로그래머스] 구명보트 (JAVA)
문제 출처 - Programmers 문제는 여기 코딩테스트 연습 - 구명보트 무인도에 갇힌 사람들을 구명보트를 이용하여 구출하려고 합니다. 구명보트는 작아서 한 번에 최대 2명씩 밖에 탈 수 없고, 무게
blackvill.tistory.com
투 포인터를 활용하셨다.
- 풀이2)
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
import java.util.Arrays;
class Solution {
public int solution(int[] people, int limit) {
Arrays.sort(people);
int i = 0, j = people.length - 1;
for (; i < j; --j) {
if (people[i] + people[j] <= limit)
++i;
}
return people.length - i;
}
}
반복문이 멋지다..
💬 느낀 점
쉽다고 생각했는데 혼자 이중반복문을 돌려볼까...하고 코드를 돌려보다가 다른 분 코드를 보고 작성했다..
근데 아예 접근 아이디어 자체가 틀려먹었던 것ㅋㅋㅋ
암튼 담에는 자만하지 말고 열심히 하자,,,,
반응형