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 ์ดํ์ ๋๋ค.
- ๊ตฌ๋ช ๋ณดํธ์ ๋ฌด๊ฒ ์ ํ์ ํญ์ ์ฌ๋๋ค์ ๋ชธ๋ฌด๊ฒ ์ค ์ต๋๊ฐ๋ณด๋ค ํฌ๊ฒ ์ฃผ์ด์ง๋ฏ๋ก ์ฌ๋๋ค์ ๊ตฌ์ถํ ์ ์๋ ๊ฒฝ์ฐ๋ ์์ต๋๋ค.
์ ์ถ๋ ฅ ์
people | limit | return |
[70, 50, 80, 50] | 100 | 3 |
[70, 80, 50] | 100 | 3 |
๋ด ํด๋ต
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
int solution(vector<int> people, int limit) {
int answer = 0;
int left_idx = 0;
int right_idx = people.size() - 1;
// ๋ฌด๊ฒ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌ
sort(people.begin(), people.end());
while(left_idx <= right_idx)
{
// ๋ฌด๊ฑฐ์ด ์ฌ๋๊ณผ ๊ฐ๋ฒผ์ด ์ฌ๋์ ํฉ์ด limit ์ดํ์ด๋ฉด ํจ๊ป ํ์น
if(people[left_idx] + people[right_idx] <= limit)
{
left_idx++;
}
// limt ์ดํ๊ฐ ์๋๋ผ๋ฉด ๋ฌด๊ฑฐ์ด ์ฌ๋๋ง ํ์น
right_idx--;
answer++;
}
return answer;
}
'๐ฅ๏ธ Study Note > Coding Test' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํ๋ก๊ทธ๋๋จธ์ค / level.1 / ์์ฐ์ ๋ค์ง์ด ๋ฐฐ์ด๋ก ๋ง๋ค๊ธฐ(C++) (1) | 2023.04.23 |
---|---|
ํ๋ก๊ทธ๋๋จธ์ค / level.3 / ์ฌ ์ฐ๊ฒฐํ๊ธฐ(C++) (0) | 2023.04.21 |
ํ๋ก๊ทธ๋๋จธ์ค / level.2 / ํฐ ์ ๋ง๋ค๊ธฐ(C++) (0) | 2023.04.18 |
ํ๋ก๊ทธ๋๋จธ์ค / level.3 / ์์ดํ ์ค๊ธฐ(C++) (0) | 2023.04.17 |
ํ๋ก๊ทธ๋๋จธ์ค / level.3 / ์ฌํ๊ฒฝ๋ก(C++) (0) | 2023.04.14 |