2020/08 7

leetcode 416(backtracking), 658(이분 탐색), 205(구현), 290(구현)

https://leetcode.com/problems/partition-equal-subset-sum/ 문제를 못풀었다. discussion에서 답들을 읽어보다 이 백트래킹 답이 가장 이해하기 쉬워서 이걸 공유한다.https://leetcode.com/problems/partition-equal-subset-sum/discuss/90610/Python-Backtracking-with-Memoization-Solution 답을 봐도 좀 빡세서 이해하는데 한참걸렸다. class Solution(object): def canFindSum(self, nums, target, ind, n, d): # 남은 nums배열, target, index, 끝길이, d=캐시 if target in d: return d[ta..

mongodb set ttl

https://docs.mongodb.com/manual/tutorial/expire-data/ 특정 시간 이후에 데이터를 자동으로 삭제하고 싶을 경우 ttl을 활용한다. mongodb에는 ttl인덱스가 있다.db.log_events.createIndex( { "createdAt": 1 }, { expireAfterSeconds: 3600 } ) When adding documents to the log_events collection, set the createdAt field to the current time:copycopieddb.log_events.insert( { "createdAt": new Date(), "logEvent": 2, "logMessage": "Success!" } )일부 자료..

data engineering 2020.08.15

kubernetes rancher add helm chart catalogs

이전에 적었듯이 kubernetes cli는 배우는데 러닝 커브가 높아서 gui로 kubernetes를 컨트롤 해주는 rancher라는걸 쓰고 있다.(하드하게 쓰는게 아니라 그런지 쓸만하다.)현재 쓰고있는 몇개 앱만 캡쳐 떠왔다. 카프카, 젠킨스 등 이것저것 잘 쓰고 있는데.. 이번에는 스파크를 설치해야 할 일이 생겼다. Apps탭이니 당연히 여기도 스파크가 있을줄 알고 Launch버튼을 눌러 스파크를 찾아봤다. 찾아봤는데 이 4개밖에 안뜬다. 맨 처음 Helm-incubator의 스파크는 deprecated되었다고 하고 선택지가 두번째 Helm spark밖에 없었다. 근데 가장 최신 버전을 설치했는데 스파크 버전이 1.5이다..... helm chart를 들어가봤더니 업데이트가 안된지 상당히 오래되었다..

data engineering 2020.08.03

leetcode 653(2SUM4), 946(stack), 729(이진 탐색), 722(정규식 regex)

653 https://leetcode.com/problems/two-sum-iv-input-is-a-bst/ https://qkqhxla1.tistory.com/1055 여기서 1번, 167번의 2 sum을 풀었었는데 이번엔 단순히 트리에서 검색하는거다. 검색부만 트리로 변경한다. from collections import deque class Solution(object): def findTarget(self, root, target): queue = deque([root]) d = set() while queue: node = queue.popleft() if target - node.val in d: return True d.add(node.val) if node.left: queue.append(..

leetcode 399(bfs, evalute-division), 406(구현), 304(prefix sum, dp), 303(prefix sum)

399 https://leetcode.com/problems/evaluate-division/ 처음에 이게 bfs dfs탐색으로 풀수있는문제인지 아예 감을 못잡았다. discussion중에https://leetcode.com/problems/evaluate-division/discuss/88275/Python-fast-BFS-solution-with-detailed-explantion 가 가장 유용했다. 요약하면 a/b가 2.0이면 a에서 b로 가는데 가중치가 2.0이라고 그래프형태로 저장해놓을수 있다. b/a는 0.5로 거꾸로도 저장해놓고 이런식으로 갈수있는 모든 경우의 수를 저장해놓는다. 그후에 갈수있는 이웃들을 전부 탐색하면서 해당 이웃으로 갈수 있으면 현재 값에 이웃으로 갈수 있는 가중치를 곱해주..