인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

김윤진님의 프로필 이미지
김윤진

작성한 질문수

자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)

4. 졸업선물

안녕하세요 코드리뷰 부탁드립니다

작성

·

129

1

선물값과 배송비 더한 값을 빼고 음수가 나오면

그 인덱스 값을 다시 더하고 남은 선물값과 배송값에서

차례대로 선물값을 2로 나누어 가능한 값을 찾았습니다

<script>
function solution(m, product){
let num = 0;
let num1 = 0;
product.sort((a,b)=>(a[0]+a[1])-(b[0]+b[1]));

for(let i = 0; i < product.length; i++){
if(m > 0){
m -= (product[i][0]+product[i][1]);
num++;
if(m < 0){
num--;
num1 = i;
m += (product[num1][0]+product[num1][1])
}
}
}
console.log(m)
for(let i = num; i < product.length; i++){
if(m>=((product[i][0]/2)+product[i][1])){
m-=((product[i][0]/2)+product[i][1])
num++;
}
}
return num;
}
let arr=[[6, 6], [2, 2], [4, 3], [4, 5], [10, 3]];
console.log(solution(28, arr));
</script>

답변 1

0

김태원님의 프로필 이미지
김태원
지식공유자

안녕하세요^^

아래는 반례입니다. 답은 (12, 1)을 할인받아 5입니다.

let arr=[[86], [22], [43], [45], [121]];
    
    console.log(solution(41, arr));
김윤진님의 프로필 이미지
김윤진

작성한 질문수

질문하기