https://school.programmers.co.kr/learn/courses/30/lessons/42885#
๋ฌธ์ ์ค๋ช
๋ฌด์ธ๋์ ๊ฐํ ์ฌ๋๋ค์ ๊ตฌ๋ช ๋ณดํธ๋ฅผ ์ด์ฉํ์ฌ ๊ตฌ์ถํ๋ ค๊ณ ํฉ๋๋ค. ๊ตฌ๋ช ๋ณดํธ๋ ์์์ ํ ๋ฒ์ ์ต๋ 2๋ช ์ฉ ๋ฐ์ ํ ์ ์๊ณ , ๋ฌด๊ฒ ์ ํ๋ ์์ต๋๋ค.
์๋ฅผ ๋ค์ด, ์ฌ๋๋ค์ ๋ชธ๋ฌด๊ฒ๊ฐ [70kg, 50kg, 80kg, 50kg]์ด๊ณ ๊ตฌ๋ช ๋ณดํธ์ ๋ฌด๊ฒ ์ ํ์ด 100kg์ด๋ผ๋ฉด 2๋ฒ์งธ ์ฌ๋๊ณผ 4๋ฒ์งธ ์ฌ๋์ ๊ฐ์ด ํ ์ ์์ง๋ง 1๋ฒ์งธ ์ฌ๋๊ณผ 3๋ฒ์งธ ์ฌ๋์ ๋ฌด๊ฒ์ ํฉ์ 150kg์ด๋ฏ๋ก ๊ตฌ๋ช ๋ณดํธ์ ๋ฌด๊ฒ ์ ํ์ ์ด๊ณผํ์ฌ ๊ฐ์ด ํ ์ ์์ต๋๋ค.
๊ตฌ๋ช ๋ณดํธ๋ฅผ ์ต๋ํ ์ ๊ฒ ์ฌ์ฉํ์ฌ ๋ชจ๋ ์ฌ๋์ ๊ตฌ์ถํ๋ ค๊ณ ํฉ๋๋ค.
์ฌ๋๋ค์ ๋ชธ๋ฌด๊ฒ๋ฅผ ๋ด์ ๋ฐฐ์ด people๊ณผ ๊ตฌ๋ช ๋ณดํธ์ ๋ฌด๊ฒ ์ ํ limit๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, ๋ชจ๋ ์ฌ๋์ ๊ตฌ์ถํ๊ธฐ ์ํด ํ์ํ ๊ตฌ๋ช ๋ณดํธ ๊ฐ์์ ์ต์๊ฐ์ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
์ ํ์ฌํญ
- ๋ฌด์ธ๋์ ๊ฐํ ์ฌ๋์ 1๋ช ์ด์ 50,000๋ช ์ดํ์ ๋๋ค.
- ๊ฐ ์ฌ๋์ ๋ชธ๋ฌด๊ฒ๋ 40kg ์ด์ 240kg ์ดํ์ ๋๋ค.
- ๊ตฌ๋ช ๋ณดํธ์ ๋ฌด๊ฒ ์ ํ์ 40kg ์ด์ 240kg ์ดํ์ ๋๋ค.
- ๊ตฌ๋ช ๋ณดํธ์ ๋ฌด๊ฒ ์ ํ์ ํญ์ ์ฌ๋๋ค์ ๋ชธ๋ฌด๊ฒ ์ค ์ต๋๊ฐ๋ณด๋ค ํฌ๊ฒ ์ฃผ์ด์ง๋ฏ๋ก ์ฌ๋๋ค์ ๊ตฌ์ถํ ์ ์๋ ๊ฒฝ์ฐ๋ ์์ต๋๋ค.
์ํ์ฐฉ์ค
1. ์ ๋ ฌ ํ ์ต์๊ฐ๋ถํฐ ๋ํ๋ฉด์ ๋ฌด๊ฒ ์ ํ๋ณด๋ค ์ปค์ง๋ฉด +1ํ๋ฉด ๋๊ฒ ๋ค
-> ์คํจ
2. ์ต๋๊ฐ ๋ฝ์๋ด์, ์ต์๊ฐ๊ณผ ๋ํด๋ณธ๋ค
-> ์ฒ์์ for๋ฌธ + erase ์ผ๋ค๊ฐ ์ฒ์ฐธํ๊ฒ ๋งํจ
-> while๋ฌธ์ผ๋ก ๋ฐ๊พธ๊ณ ์ธ๋ฑ์ค i, j๋ฅผ ์จ์ ๋์์๋ถํฐ i++, j-- ํ๋ ์์ผ๋ก ํ์ํจ
-> ์ฑ๊ณต!
๊ทธ๋ฆฌ๋ ๋ฌธ์ ๋ ์์ด๋์ด๋ฅผ ๋ ์ฌ๋ฆฌ๋๊ฒ ์ ์ผ ์ด๋ ค์ด ๊ฒ ๊ฐ๋ค......
์์ด๋์ด๋ง ๋ ์ฌ๋ฆฌ๋ฉด ์ฝ๋๋ ์๊ฐ๋ณด๋ค ์งง๊ฒ ๋์ค๋ ๋๋
๋์ ํ์ด
#include <string>
#include <vector>
#include <algorithm>
#include <iostream>
using namespace std;
int solution(vector<int> people, int limit) {
int answer = 0;
int i=0;
int j=people.size()-1;
sort(people.begin(), people.end());
while(i<=j){
if(people[j]+people[i] <= limit){
i++; j--;
answer++;
}
else {
j--;
answer++;
}
}
return answer;
}
'๐ ์๊ณ ๋ฆฌ์ฆ > Programmers' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[C++/PGS] Lv.2 : ์นดํซ (์์ ํ์) (0) | 2023.03.03 |
---|---|
[C++/PGS] Lv.2 : ์์ ์ฐพ๊ธฐ (์์ ํ์) (0) | 2023.03.03 |
[C++/PGS] Lv.2 : ํฐ ์ ๋ง๋ค๊ธฐ (GREEDY) (0) | 2023.03.02 |
[C++/PGS] Lv.2 : ํ๋ฆฐํฐ (Queue) (0) | 2023.03.02 |
[C++/PGS] Lv.3 : ๋จ์ด ๋ณํ (DFS/BFS/๋ฐฑํธ๋ํน) - ์์ ํ์ (0) | 2023.02.24 |