728x90
45_subsetSum
이건 무조건 더 효율적인 방법이 있을 것 같다
무조건 시간초과같은거 날것같았는데 안나서 신기했다
const subsetSum = function (set, bound) {
let res=0;
let ans=0;
set.sort((a,b)=>b-a); //역순정렬함. [15, 8, 3, 1]
for(let i=0;i<set.length;i++) {
res = set[i]; //일단 res에 i번쨰 값을 넣어준다
for(let j=i+1;j<set.length;j++) { //i번째 수 다음것부터 배열끝까지
if(res+set[j]<=bound) { //만약에 계속 더하고있는 res와 j번째 수의 합이 bound보다 작거나 같으면
res = res+set[j];// res에 더해준다
}
}
//현재 ans에는 bound보다 작거나 같은 수 중에 가장 bound에 가까운 합의 값이 들어가있다
if(res>ans && res<=bound) ans = res; //따라서 ans값이 바뀌려면 ans보다는 커야하고 res보다는 작거나 같아야한다
}
return ans;
};반응형
'BEB > algorithm' 카테고리의 다른 글
| 48_FloydWarshall (0) | 2023.01.19 |
|---|---|
| 46_0-1Knapsack (0) | 2023.01.15 |
| 41_countIslands (0) | 2022.12.22 |
| 40_longestPalindrome 가장긴 팰린드롬 (0) | 2022.12.20 |
| 38_decompression (0) | 2022.12.16 |
댓글