Inorder Successor in BST II
Problem Solving 2020. 9. 19. 16:36

Inorder Successor in BST II Explore - LeetCode LeetCode Explore is the best place for everyone to start practicing and learning on LeetCode. No matter if you are a beginner or a master, there are always new topics waiting for you to explore. leetcode.com - 문제 내용 : binary tree에서 특정 노드를 input으로 주면 inorder successor(다음에 나올 노드)로 올 노드를 Return - 접근 방법 : inorder로 나올수 있는 경우의 수를 줄여 가면서 Case를 나누었다. 일단 pre..

Best Time to Buy and Sell Stock
Problem Solving 2020. 9. 18. 19:49

Best Time to Buy and Sell Stock Explore - LeetCode LeetCode Explore is the best place for everyone to start practicing and learning on LeetCode. No matter if you are a beginner or a master, there are always new topics waiting for you to explore. leetcode.com - 문제 내용 : 주어진 기간동안 단 한번의 구매와 판매가 가능하다. 최대의 이익값을 구해라 - 접근 방법 가장 낮은 값과 가장 높은 값을 찾아서 그 차를 구하면 된다. 단, 가장 낮은 값은 반듯이 가장 높은 값의 왼쪽에 있어야 한다. Prefix ..

Permutation
Problem Solving 2020. 9. 18. 11:37

주어진 문자열 또는 숫자열 대상으로 모든 경우의 수를 찾아내는 알고리즘 막상 이런 문제가 눈앞에 보이면 허둥지둥 되다가 시간을 많이 보내다 보니 코드로 남겨 본다. Permutation 은 경우의 수다 첫 글자를 Permutation 기능 내에서 고정시켜 나가면서 순환 시켜야 한다 상기 이미지를 보면 ABC가 들어왔을 경우 A를 고정시키고 BC를 다시 Permutation Method에 넣는 것을 볼수 있다. 해당 Permutation은 마지막 한자리가 남을 때까지 지속하면 된다. 그리고 다시 B를 고정시키고 AC와 C를 고정시키고 BA를 Permutation을 순환 시키는 방식으로 전체 Permutation을 구할 수 있다. function permutation(str, l, r, result = []..

괄호 변환
Problem Solving 2020. 9. 15. 22:49

programmers.co.kr/learn/courses/30/lessons/60058 코딩테스트 연습 - 괄호 변환 카카오에 신입 개발자로 입사한 콘은 선배 개발자로부터 개발역량 강화를 위해 다른 개발자가 작성한 소스 코드를 분석하여 문제점을 발견하고 수정하라는 업무 과제를 받았습니다. 소스를 컴� programmers.co.kr - 문제 내용 : 괄호의 Validation을 확인하고 잘못된 부분을 수정해라 1. 입력이 빈 문자열인 경우, 빈 문자열을 반환합니다. 2. 문자열 w를 두 "균형잡힌 괄호 문자열" u, v로 분리합니다. 단, u는 "균형잡힌 괄호 문자열"로 더 이상 분리할 수 없어야 하며, v는 빈 문자열이 될 수 있습니다. 3. 문자열 u가 "올바른 괄호 문자열" 이라면 문자열 v에 대해..

문자열 압축
Problem Solving 2020. 9. 15. 21:24

programmers.co.kr/learn/courses/30/lessons/60057 코딩테스트 연습 - 문자열 압축 데이터 처리 전문가가 되고 싶은 어피치는 문자열을 압축하는 방법에 대해 공부를 하고 있습니다. 최근에 대량의 데이터 처리를 위한 간단한 비손실 압축 방법에 대해 공부를 하고 있는데, 문자 programmers.co.kr - 문제 내용 : Run Length Encoding을 하는데 있어서 가장 적절한 길이를 찾아라 - 접근 방법 : 모든 경우의 수를 loop로 돌아서 처리한다 나의 멍청함이 한껏 빛을 발휘하는 문제였다. 문제는 쉽지만 문제의 제한 사항을 정확히 찾아내지 못해서... 1번 나타난 값은 1을 표시하지 않는다 2번부터 9번 나타난 값까지니는 한자리수 더한다. 예) abcabc..

Java VM Option (계속)
잡동사니 2020. 9. 15. 19:28

VM Options을 쓸일은 많지 않지만, 기록을 남긴다. VM Options은 Case Sensitivey 하기 때문에 대소문자에 주의 해야 한다. 1. PrintCompilation -XX:+PrintCompilation XX : Extention +/- : on or off 첫번째 블럭 : VM 시작 후 밀리세컨드 타임 두번째 블럭 : 컴파일된 블럭의 order 순서 gist.github.com/chrisvest/2932907 % On stack replacement compile type: * With flag: This CompileTask is an OSR compilation task * Without: This CompileTask is a standard compilation task s..

Union find
Problem Solving 2020. 9. 15. 09:07

Union Find는 내장 라이브러리가 없어서 필요할 때 많이 만들어서 사용한다. 사용 방법에 따라서 input과 output이 달라지는 문제때문에 그런거 같아 보이긴 한데, 짐작이다. 그래서 조금하게 클래스를 하나 만들어 봤다. Union find는 크게 2개의 기능으로 이루어 진다. Find : 특정 키를 갖고 있는 값의 Root를 찾는다. Union : 2개의 키를 하나의 Root로 합친다. 여기에 하나 더해서 내부에서 사용할 Set을 만드는 기능도 필요한데, 그냥 find 넣으면 set을 만든다 생각하고 만들지 않았다. class UnionFind{ constructor(){ this.map = new Map(); } find(key){ key = JSON.stringify(key); if(!th..

지형 이동
Problem Solving 2020. 9. 14. 22:48

programmers.co.kr/learn/courses/30/lessons/62050 코딩테스트 연습 - 지형 이동 [[1, 4, 8, 10], [5, 5, 5, 5], [10, 10, 10, 10], [10, 10, 10, 20]] 3 15 [[10, 11, 10, 11], [2, 21, 20, 10], [1, 20, 21, 11], [2, 1, 2, 1]] 1 18 programmers.co.kr - 문제 내용 : cost를 갖고 있는 cell로 구성이된 grid 에서 주어진 height 이내의 cell끼리는 이동이 가능하다. 이동이 불가능한 cell들이 존재 하는 zone으로는 사다리를 놓고 이동 할 수 있다. 최소한의 사다리 cost로 모든 cell을 순회 가능한 값을 찾아라. - 접근 방법 :..

Javascript Priority Queue 오름 차순
Problem Solving 2020. 9. 14. 21:53

Javascript는 Priority Queue 내장함수가 없어서 직접 만들어서 써야 한다. Binary 방식으로 메모리를 관리 한다. 코드를 만들 때 주의 해야 할 것은 1. pop 할때 내부 Array의 사이즈를 항상 1로 유지 하는 것 2. Array 자체의 사이즈가 2일 때는 1상태로 돌려주는 부분이다. class PriorityQ { constructor() { this.arr = new Array(); this.arr.push(''); } push(cost, elem) { this.arr.push([cost, elem]); let curPosition = this.arr.length-1; while (1 < curPosition && this.arr[curPosition][0] < this.a..