First Missing Positive
Problem Solving 2021. 5. 1. 01:14

First Missing Positive 문제 내용 주어진 Integer Array에 1부터 N까지의 수가 있다. 이중에 1이상의 수중에 첫번째로 없는 수를 찾아라 O(N)을 목표로 한다. 접근 방법 O(N)이라는 부분이 이 문제의 핵심이다. 만약에 쉽게 정리 한다면 Sorting O(NlogN)으로 문제를 해결할 수 있다. 그러나 O(N)의 속도는 Sorting으로 해결되지 않는다. 이런경우 자료 구조를 통한 접근을 우선적으로 생각할 수 있다. 나는 Priority Queue를 통한 접근을 생각했다. 값을 Push할 경우 O(LogN) Delete할 경우 O(1)과 자리를 찾는데 걸리는 시간 최대 (N)이 걸릴 수 있다. 그래서 최대 O(N)으로 Priority Queue를 생각했다. public in..

Merge k Sorted Lists
Problem Solving 2021. 4. 29. 00:31

Merge k Sorted Lists 문제 주어진 N개의 Linked List가 주어지고, 이 N개의 Linked List를 Merge후 오름차순 정렬한 하나의 Linked List를 반환하라 접근방법 가장 쉬운 방법은 N개의 Node중 첫번째 노드의 Value를 상호 비교 하면서 List를 하나씩 Pop 하는 방법이다. 이방법을 사용하면 List의 갯수 만큼 Compare가 필요하다. 상기 그림을 보면 1,3,7 => 3번을 Compare하고 2,3,7 => 3번을 Compare하고 .... 7 => 1번을 Compare하게 되는데 만약에 3개의 Linked List가 동일한 Node의 갯수를 갖게 된다면 최악의 경우 O(numberOfList * Node) 만큼의 시간 복잡도를 갖게 된다. 그래서 다..

spring-boot-starter-thymeleaf 수정사항 즉각 반영하기
Software활용 2021. 4. 28. 16:29

Thymeleaf를 사용해서 UI Template(Html)를 수정하거나 Class를 수정했을 때 Hot Swapping을 발생 시키지 못해서, Local 서버를 완전히 껏다가 켜야 할때가 있다. 이를 Intellij에서 처리 하는 방법을 설명 하고자 한다. Template Caching Disable : spring.thymeleaf.cache=false 설정을 application.properties에 설정해 다. Debug Mode로 서버 Running : Run in Debug Mode를 선택해서 실행 한다. Reload Change Classes : Run > Reload Change Classes 클릭 이렇게 하면 서버를 재 실행 하지 않고 즉각 반영이 가능하다.

Consecutive Numbers Sum
Problem Solving 2021. 4. 28. 00:55

Consecutive Numbers Sum 문제 내용 주어진 숫자(N)보다 같거나 낮은 수의 연속적인 배열의 Sum이 주어진 숫자와 같은 경우의 수는 몇개인가? 접근 방법 수학적인 접근을 통해서 문제를 해결해야 한다. 만약에 15라는 N이 주어졌다고 생각해 보겠다. 15(N) = 4 + 5 + 6 으로 이루어 질 수 있다. 또는 15(N) = 8 + 7 로도 이루어 질 수 있다. 이것을 일반항화 시키면 다음과 같다. N = (x + 1) + (x + 2) + (x+ 3) + ... + (x + k) 여기서 k는 연속된 갯수이다. 8 + 7은 두개의 연속된 갯수 임으로 k는 2이다. 이를 x로 묶어 보겠다. N = x*k + (0 + 1) + (0 + 2) + (0+ 3) + ... + (0 + k) 여기..

Basic Calculator
Problem Solving 2021. 4. 27. 00:02

Basic Calculator 문제 내용 숫자, 더하기, 빼기, 중괄호 '(' ')' 그리고 ' ' 스페이스로만 구성된 계산식을 계산 하시오 풀이 방법 기본적으로 후위연산을 통해서 해당 문제를 푸는게 학교에서 배우는 방법이다. 자세한 내용은 www.programmersought.com/article/93565454512/ 여기를 참고 하면 되는데 간단하게 순서를 설명하자면 아래와 같다. 1. Stack을 2개로 유지한다 2. 1번 Stack은 숫자와 Operand(연산자) 로 이루어진 Stack이다. 3. 2번 Stack은 Operand(연산자)와 '(' 왼쪽 대괄호로 이루어진 Stack이다. 4. 2번 Stack에서 ')' 좌측 대괄호를 만나면 2번 Stack에 있던 Operand를 1번 Stack으로..

Intellij Editor 창 Font Size 변경
intellij 2021. 4. 26. 22:30

Intellij를 사용해서 강의를 하거나 Live coding을 할때 Editor창의 Font 크기를 쉽게 키우거나 작게 하고 싶을 때가 있다. 이때 다음 환경을 수정해 주면 된다. File > Settings >> Editor >> General Change font size (Zoom) with Ctrl + Mouse Wheel 그러면 컨트롤을 누르고 마우스 휠을 이용해서 Font의 사이즈를 자유롭게 수정이 가능하다.

Trapping Rain Water
Problem Solving 2021. 4. 24. 17:30

Trapping Rain Water 문제 내용 Stones가 쌓여있는 길이 Arrays가 주어졌을 때 Stones 사이에 얼마나 많은 물이 쌓일 수 있는가? 풀이 방법 풀이 방법은 여러가지가 있을 수 있는데 가장 쉬운 방법은 왼쪽에서 부터 포지션을 하나씩 늘려가면서, 현재 포지션의 왼쪽과 오른쪽을 Full Search한 후 왼쪽과 오른쪽의 가장 높은 높이를 찾고 그중 낮은 값을 답으로 하면된다. 상기 그림을 보면 왼쪽 포지션과 오른쪽 포지션을 보고 가장 낮은 포지션의 값인 2을 현재 포지션의 물 높이로 선택 하면 된다. 그런데 이렇게 full search 하게 되면 Height의 Size N 만큼 왼쪽으로 움직일 때마다 (N-1) 만큼의 Search가 매번 필요하다. 수식으로 하면 O(N*(N-1))이 ..

Rxjava 정리
잡동사니 2021. 4. 13. 22:28

Observable 1.0에서는 Observable 1개 지원 2.x에서는 Observable, Maybe, Flowable 3개 지원 Obserbable 3가지 알림형태 onNext : Data 발행 onComplete : 모든 이벤트 완료, 완전한 종료 onError : 에러, 완전한 종료 생성 - Factory 함수 사용 create() : 개발자가 ObservableEmitter를 이용해서 onNext와 oncomplete를 처리해줘야 함 just() : 인자 10개까지 가능, 1회성, subscribe시 전체 Stream 송신 fromArray() : Object[] Array 형태 fromIterable() : Iterator 형태 fromCallable() : 동시성 API Callable ..

kubernetes guestbook CICD (Blue/Green 배포)
Software활용 2021. 4. 4. 21:54

guestbook 을 local에 다운로드 v1-18.docs.kubernetes.io/docs/tutorials/stateless-application/guestbook/ git clone origin https://github.com/theyoung/guestbook.git guestbook의 php lint 확인 curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash - sudo apt install nodejs sudo npm i -g phplint phplint "php-redis/*.php" No syntax errors detected in php-redis/guestbook.php docker image build cd php-redi..