문제
나의 코드
let arr=[13, 15, 34, 23, 45, 65, 33, 11, 26, 42];
let k = 3;
-------------------------------------------------
let n = arr.length;
let stack = [];
let answer;
for(let i=0; i<n; i++){
for(let j=i+1; j<n; j++){
for(let l=j+1; l<n; l++){
let tmp = arr[i]+arr[j]+arr[l];
stack.push(tmp)
}
}
}
stack.sort((a,b)=> b-a);
let stack2 = Array.from(new Set(stack));
answer = stack2[k-1];
console.log(answer);
원리
- tmp에 뽑은 3장의 카드를 만든다.
- stack[]에 넣어준다.
- stack을 정렬시킨다.(내림차순으로)
- stack을 Set으로 바꾼다음 다시 배열로 바꾼다. -> 중복을 제거하기 위함
수정코드
let arr=[13, 15, 34, 23, 45, 65, 33, 11, 26, 42];
let k = 3;
-------------------------------------------------
let n = arr.length;
let answer;
let tmp = new Set();
for(let i=0; i<n; i++){
for(let j=i+1; j<n; j++){
for(let k=j+1; k<n; k++){
tmp.add(card[i]+card[j]+card[k]);
}
}
}
let a=Array.from(tmp).sort((a, b)=>b-a);
answer=a[k-1];
console.log(answer);
수정부분