Zero to Hero
article thumbnail
21. Merge Two Sorted Lists
Algorithm 2021. 4. 26. 12:56

Merge Two Sorted Lists - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 1. 내 Trash Garbage 코드 class Solution: def mergeTwoLists(self, l1: ListNode, l2: ListNode) -> ListNode: zero_node = ListNode() cur = zero_node while l1 and l2: if l1.val >= l2.val: cur.next = l2 l2 = l2.next el..

Docker 02
Programming 2021. 4. 23. 13:23

Docker를 지탱하는 기술 chroot(change root) 프로세스의 새로운 루트 디렉터리를 만든다. 그리고 그 루트의 상위로 접근할 수 없게 하는 기술 즉 호스트 파일 시스템이 아닌 별도의 실행환경을 가지게 된다. namespace 하나의 시스템(호스트 OS)에서 수행되지만 독립된 공간처럼 격리된 환경을 제공하는 리눅스 커널의 경량 프로세스 가상화 기술 cgroup(control group) 하나의 프로세스에 할당되는 물리적인 자원을 조정하는 기술 CPU개수, CPU 사용률, 최대 할당 Memory 등 Overlay File System 공통적으로 사용하는 이미지는 Read-Only로 하나의 레이어를 공유하고 Write 전용 레이어를 두어 컨테이너별로 사용하는 데이터 및 레이어를 따로 관리하는 기..

Docker 01
Programming 2021. 4. 23. 12:51

가상화 CPU, 메모리 등 내가 가지고 있는 자원을 논리적인 형태로 묶는 행위 가상화 등장 배경 기존 상황 메일 서비스, 백업 서비스의 2개의 서비스를 운영해야 한다고 가정해보자. 그럼 단순히 보면 메일 서비스를 위한 서버 1대, 백업 서비스를 위한 서버 1대, 총 2대의 서버가 필요하다. 그래서 2대의 서버를 운영 중이다. 문제점 비효율적이다. 실제로 한 서비스에 할당된 서버 자원이 좀 지나치게 풍부하다. 서비스 특성상 피크 타임이 다르다. 메일 서버는 일과 시간에, 백업 서버는 밤에 리소스 사용량이 많다. 그래서 메일 서버는 밤에는 놀고, 백업 서버는 낮에 논다. 결국 내가 가진 자원이 굉장히 비효율적으로 사용되고 있는 상황이다. 즉 내 자원에 대한 Utilization이 굉장히 떨어진다. 그럼에도 ..

article thumbnail
169. Majority Element
Algorithm 2021. 4. 23. 11:01

Majority Element - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 1. 해시맵 스타일(Dict, Counter 사용) from collections import Counter class Solution: def majorityElement(self, nums: List[int]) -> int: counter = Counter() for num in nums: counter[num] += 1 return counter.most_common(1)[0]..

136. Single Number
Algorithm 2021. 4. 22. 14:31

Single Number - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 1. 집합 사용 class Solution: def singleNumber(self, nums: List[int]) -> int: set1 = set() for num in nums: if num not in set1: set1.add(num) else: set1.remove(num) return set1[0] 2. 조건의 특성 사용, 2*(a+b+c) - (2a+2b+c) = c cla..

article thumbnail
617. Merge Two Binary Trees
Algorithm 2021. 4. 21. 12:36

Merge Two Binary Trees - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 1. 나의 Trash Garbage 코드 class Solution: def search(self, p1, p2): p1.val += (p2.val if p2 else 0) if p1.left: if p2: self.search(p1.left, p2.left) else: self.search(p1.left, TreeNode(0, None, None)) else: if p2..