์๋ฐ ์ฝ๋
import java.util.*;
class Solution {
public int solution(int[] people, int limit) {
int answer = 0;
Arrays.sort(people);
int left = 0;
int right = people.length-1;
while(left<=right){
int sum = people[left]+people[right];
if(left==right){
answer++;
break;
}
if(sum<=limit){
answer++;
left++;
right--;
}else{
answer++;
right--;
}
}
return answer;
}
}
ํ์ด์ฌ ์ฝ๋
def solution(people, limit):
answer = 0
people.sort()
left = 0
right = len(people)-1
while left <= right:
if left == right:
answer+=1
break
_sum = people[left]+people[right]
if _sum<=limit:
answer+=1
left+=1
right-=1
else:
answer+=1
right-=1
return answer
LeetCode์์ ํฌ์ธํฐ ๋ฐฉ์ ๋ฌธ์ ๋ฅผ ๋ง์ด ํ์ด๋ด์ ์ฝ๊ฒ ํด๊ฒฐํ๋ ๋ฌธ์ ์๋ค.
๋จผ์ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌํด์ค ๋ค์, left = 0, right = ๋ฐฐ์ด ๋ ์ธ๋ฑ์ค ๋ก ์ก์์ค๋ค.
๋ณดํธ๋ ์ต๋ 2๋ช ์ด ํ ์ ์๋ค๊ณ ํ์ผ๋ฏ๋ก
๊ฐ์ฅ ๋ฌด๊ฑฐ์ด ์ฌ๋์ด ๊ฐ์ฅ ๊ฐ๋ฒผ์ด ์ฌ๋ ์์ผ๋ก 1๋ช ์ฉ ํ์ธ ์ ์๋ ์ํฉ์ด๋ฉด ํ์๊ฐ๋๊ฒ ๋ณดํธ๊ฐ ๊ฐ์ฅ ์ ๊ฒ ์์ง์ผ๊ฒ์ด๋ค.
๋ง์ฝ ์ต๋์ธ์์๊ฐ ์์ ํด์ ธ์์์ผ๋ฉด ๊ฝค๋ ๊น๋ค๋ก์ธ๋ป..
์๋ฌดํผ, ๋ณดํธ๋ฅผ ์ ํ ์ฌ๋ ์ค ๊ฐ์ฅ ๋ฌด๊ฑฐ์ด ์ฌ๋๊ณผ ๊ฐ์ฅ ๊ฐ๋ฒผ์ด ์ฌ๋์ด ๋ฌด๊ฒ ์ ํ์ ๋ง์กฑํ๋ฉด ๊ฐ์ด ํ์๋ณด๋ด๊ณ
right ๋ฅผ -1 ๊ฐ์ left๋ฅผ +1 ์ฆ๊ฐ์ํจ๋ค.
๋ง์ฝ ์ ํ์ ๋๋๋ค๋ฉด, ๋ฌด๊ฑฐ์ด ์ฌ๋์ ๋๊ตฌ์๋ ํจ๊ป ํ ์ ์์์ด ํ์คํด์ง๊ธฐ ๋๋ฌธ์ ๋จผ์ ํ์๋ณด๋ด์ผ ํ๋ฏ๋ก
right๋ฅผ -1 ๊ฐ์ ์ํจ๋ค.
๋ง์ฝ left==right ๋๋ ์๊ฐ์ด ์จ๋ค๋ฉด, 1๋ช ๋ง ๋จ๊ฒ ๋๋ ๊ฒ์ด๋ฏ๋ก answer++ ์ํค๋ฉด์ ํ์ ๋ณด๋ด๋ฉด ์ ๋ต์ด ๋์จ๋ค.