Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- 티스토리
- trie
- jdbc
- 트라이 #trie #알고리즘
- 알고리즘
- 호텔 방 배정
- 보행자 천국
- CleanCode
- 불량 사용자
- Open API
- 트라이
- 징검다리 건너기
- Tistory
- pycon
- bulk update
- 프로그래머스
- Spring Boot
- 크레인 인형뽑기 게임
- Python
- 가사 검색
- 카카오 인턴
- 튜플
- 티스토리 open api
Archives
- Today
- Total
택시짱의 개발 노트
[프로그래머스] 구명보트 본문
링크
https://programmers.co.kr/learn/courses/30/lessons/42885
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
풀이
모든 사람을 구출하기 위해 필요한 구명보트 개수의 최솟값을 구하는 문제이다.
먼저 구명보트를 효율적으로 이용하여 사람을 구출하는 방법을 생각해야 되는데
효율적인 방법은 구명보트가 수용 가능한 무게에 최대한 가깝게 사람을 태우면 된다.
어떻게 해야 효율적인 무게를 찾을 수 있을까
저는 사람들의 무게를 오름차순으로 정렬을 하고
무게가 가장 작은 사람과 무게가 가장 큰 사람을 함께 보트에 태울 수 있는지를 확인하였습니다.
무게가 가장 큰 사람과 무게가 가장 작은 사람과 함께 보트를 탈 수 없다면 무게가 가장 큰사람은
무조건 혼자 탈 수밖에 없습니다.
이걸 이용하여 둘이 같이 탈 수 있다면 둘이 한 보트를 태우게 하고
만약에 같이 못 탄다면 무게가 큰 사람만 혼자 보트를 타도록 하였습니다.
#include<iostream>
#include<vector>
#include<algorithm>
#include<queue>
#include<string>
#include<set>
#include<map>
#include<cstring>
#include<functional>
#include<cmath>
#include<stack>
#define SIZE 1010
const int INF = 2000000000;
using namespace std;
typedef long long int ll;
typedef pair<int, int> pii;
int solution(vector<int> people, int limit) {
sort(people.begin(), people.end());
int left = 0, right = people.size() - 1;
int answer = 0;
while (left <= right) {
if (left == right) {
answer++;
break;
}
if (people[left] + people[right] <= limit) {
answer++;
left++; right--;
}
else {
answer++;
right--;
}
}
return answer;
}
궁금하신 거나 잘못된 점이 있다면 과감히 댓글 남겨주세요 ㅎ
반응형
'알고리즘' 카테고리의 다른 글
[프로그래머스] 순위 (0) | 2020.04.14 |
---|---|
[SW Expert] 5521. 상원이의 생일파티 (0) | 2020.04.07 |
[프로그래머스] 징검다리 건너기 (0) | 2020.04.01 |
[프로그래머스] 호텔 방 배정 (0) | 2020.04.01 |
[프로그래머스] 불량 사용자 (2) | 2020.04.01 |
Comments