https://school.programmers.co.kr/learn/courses/30/lessons/42885
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
탐욕법으로 카테고리 되어있는데 잘 풀리지않아서 투포인터로 풀이하게 됐다
function solution(people, limit) {
var count = 0;
people.sort((a,b)=> b - a)
let left = 0, right = people.length -1;
while(left <= right){
if(people[left] + people[right] <= limit){
left ++;
right --;
count ++;
} else{
left ++;
count ++;
}
}
return count;
}
투포인터가 뭔지는 이제 알겠는데, 언제 left ++ 이고 right --인지 좀 헷갈렸다;
일부 케이스만 통과하기도 하고
결국은 손으로 써가면서 각 케이스마다 어떻게 포인터를 이동할 것인지 이해할 수 있었다.
[다른 사람 풀이]
for문을 써서 투포인터를 적용
function solution(people, limit) {
people.sort(function(a, b){return a-b});
for(var i=0, j=people.length-1; i < j; j--) {
if( people[i] + people[j] <= limit ) i++;
}
return people.length-i;
}

'개발 공부 일지 > JavaScript' 카테고리의 다른 글
| 유클리드 호제법 - 최대 공약수 (0) | 2025.04.08 |
|---|---|
| [프로그래머스] 멀리뛰기 (0) | 2025.03.21 |
| [프로그래머스] 점프와 순간이동 (0) | 2025.03.21 |
| [프로그래머스] 체육복 (0) | 2025.03.21 |
| [프로그래머스] 짝지어 제거하기 (0) | 2025.03.21 |