본문 바로가기

분류 전체보기361

Leetcode 41. First Missing Positive 소스코드 문제 [41. First Missing Positive] 풀이 (brute-force) 순회하면서 HashMap 에 데이터를 마킹한다. HashMap 을 처음부터 순회하면서 missing num 을 찾는다. 시간복잡도, 공간복잡도 O(n) fun firstMissingPositive(nums: IntArray): Int { val hashMap = HashMap() for (num in nums) { if (num > 0) { hashMap[num] = true } } var missingNum = 1 while (hashMap.containsKey(missingNum)) { missingNum++ } return missingNum } 풀이 ( 공간복잡도 O(1) ) 상세 풀이 주석 전체적인 .. 2024. 4. 9.
Leetcode1669.MergeInBetweenLinkedLists 소스코드 문제 1669.MergeInBetweenLinkedLists 풀이 (brute-force) 상세 풀이 주석 시간 복잡도 O(n) /** * 1. 문제 * - listNode1, 2 가 주어짐. * - listNode1 의 a,b 번째를 삭제한다. * - 그 사이에 listNode2 를 채운다. * * 제약 조건 * 3 2024. 3. 26.
Leetcode 930.BinarySubarraysWithSum 소스코드 문제 930.BinarySubarraysWithSum 풀이 (brute-force) for loop 2번 돌아서 sum 이 goal 과 일치할 경우 output 을 계산해줬습니다. 시간 복잡도 : O(n²) , 공간 복잡도 : 1 fun numSubarraysWithSum1(nums: IntArray, goal: Int): Int { var output = 0 var sum = 0 for (i in 0 until nums.size) { sum += nums[i] if (sum == goal) { output++ } for (j in i + 1 until nums.size) { sum += nums[j] if (sum == goal) { output++ } } sum = 0 } return out.. 2024. 3. 26.
[시스템디자인 4편] 카프카 무중단 전환 목차는 시스템 디자인 목차 에 있습니다. TIL 형식으로 정리했습니다. 나중에 보기 위한 용도로 간단하게 정리했습니다. [시스템디자인 4편] 카프카 무중단 전환 요약 기존 카프카에 생성된 메시지와 신규 카프카에서 생성된 메시지의 데이터를 비교 한 번에 바꾸는게 아니라 점진적으로 변경하는 방식으로 처리 ex) consumer 를 점진적으로 기존 → 신규 카프카로 교체 Transactional messaging 비즈니스 로직과 이벤트 발행이 원자적으로 함께 실행하는 것을 의미 구현 방법 2가지 Transactional outbox pattern 구현 방식에 Polling Publisher, Transaction Log Tailing 있음 Polling Publisher 은 테이블을 Polling 해서 메시지.. 2024. 3. 18.