-
[공부하고다시풀기../릿코드] 1187. Make Array Strictly Increasing코딩테스트 2023. 6. 18. 18:08
var makeArrayIncreasing = function (arr1, arr2) { arr2.sort((a,b)=>a-b) const cache = new Map(); const getMinimalReplacement = (noLessThen) =>{ let left = 0; let right = arr2.length-1; while(left<right){ let mid = Math.floor((left+right)/2); if(arr2[mid]>noLessThen){ right = mid; }else{ left = mid+1; } } return arr2[right]>noLessThen?arr2[right]:-1 } const dfs=(i,ops,prev)=>{ if (i >= arr1.length) return 0 const str = `${prev}~${i}` if (cache.has(str)) return cache.get(str) let minOps = Infinity let replacement = getMinimalReplacement(prev); if(replacement!==-1){ minOps = Math.min(minOps,dfs(i+1,ops,replacement)+1) } if(arr1[i]>prev){ minOps = Math.min(minOps,dfs(i+1,ops,arr1[i])) } cache.set(str,minOps) return minOps; } const ops = dfs(0,0,-1); return ops<arr2.length?ops:-1 }
너무 어려웠고 다른이들의 풀이를 가도 이해가 가지 않았다.
그래도 계속 보면서 이해했지만... 꼭 다시 봐야한다 좀 더 공부해서
'코딩테스트' 카테고리의 다른 글
[릿코드/js] 다시풀기 137.candy (0) 2023.09.13 [못풀었다/릿코드]2328. Number of Increasing Paths in a Grid (0) 2023.06.18 [못풀었다/릿코드] 1569. Number of Ways to Reorder Array to Get Same BST (0) 2023.06.16 [다시풀기/릿코드] 1161. Maximum Level Sum of a Binary Tree (0) 2023.06.15 [못풀었다/프로그래머스] 여행경로 (0) 2023.06.14