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))이 ..

Buddy Strings
Problem Solving 2020. 10. 12. 22:51

Buddy Strings Buddy Strings - 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 - 문제 내용 : 주어진 두 문자열중에 한 문자열의 2글자를 교환해서 동일한 문자를 만들 수 있는지 알아내라 - 접근 방법 문제의 Rule을 찾아야 한다. 쉬운 문제이기 때문에 크게 설명할 것은 없는데, 단지 알파벳 26자를 이용한 memorization을 통해 접근 하는 방법을 눈여겨 보면 좋을 것이라고 생각한다. 근본적으로 어떻게 문자의 구성이 되든 알파벳의 ..

Count Subtrees With Max Distance Between Cities
Problem Solving 2020. 10. 12. 00:24

Count Subtrees With Max Distance Between Cities Count Subtrees With Max Distance Between Cities - 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 - 문제 내용 : Tree로 만들어진 Nodes가 있다. Node의 갯수와 Node간의 Brides Array가 주어 졌을때, (순환 하지 않음) 연결 가능한 모든 Node의 Subsets에서 가장 거리가 긴 Distances를 길이로 해서 A..

Two Sum III - Data structure design
Problem Solving 2020. 10. 10. 13:35

Two Sum III - Data structure design Account Login - 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 - 문제 내용 : Two Sum API 개발 - 접근 방법 일반적인 Two Sum과 같기 때문에 큰 문제는 없는데 Edge Case가 2가지가 있어서 해당 부분을 남기고자 한다. Array에 한개의 값만 있는데 정답이 되는 경우 예를 들자면 0의 경우는 0을 찾게 되는데 이때 0이 Array에 하나밖에 없다면 false 동일..

Serialize and Deserialize BST
Problem Solving 2020. 10. 9. 23:51

Serialize and Deserialize BST - 문제 내용 : BST를 직렬화하고 이를 Deserialize 하여라 - 접근 방법 DFS를 통해서 node의 value를 String화 하고 이를 복구 하면서 다시 Node Tree를 만든다. 상기와 같이 DFS 방식으로 1,2,4,null,3,null,5 순서로 String을 만들고 이를 다시 역직렬화 하면 된다. 역직렬화시 주의해야 할 점은 직렬화되서 넘어온 값을 Queue로 하나씩 빼나가면서 처리 해야 한다는 것이다. 코드는 다음과 같다. var serialize = function(root) { console.log(dfs(root)); function dfs(node, queue = new Array()) { if(node == null)..

Insert into a Binary Search Tree
Problem Solving 2020. 10. 7. 23:42

Insert into a Binary Search Tree 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 - 문제 내용 : BST에 value를 insert 하라 - 접근 방법 기본 내용이기 때문에 별 내용이 없다. var insertIntoBST = function(root, val) { if(root == null) return new TreeNo..

Rotate List
Problem Solving 2020. 10. 7. 23:11

Rotate List Rotate List - 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 - 문제 내용 : 주어진 Linked 전체를 우측으로 k번 옮긴 새로운 Linked List를 return 해라 - 접근 방법 몇 번째의 노드가 새로운 head가 될 것이냐를 찾는 문제이다. 위와 같이 문제가 나왔다고 하면 k번째에 따라 다음과 같은 변화가 일어난다. 여기서 알수 있는 Rule은 k번째가 0번, 2번, 4번이라고 하면 변화가 없다는 것이다. 즉, k가 n..

Complement of Base 10 Integer
Problem Solving 2020. 10. 5. 22:43

Complement of Base 10 Integer 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 -문제 내용 : 주어진 숫자의 2진수형 보수를 출력하라 -접근 방법 10진수의 수를 2진수로 바꾼다 2진수의 수에 11111 이런식으로된 이진수와 XOR를 처리한다 1번의 경우는 내장함수로 변환이 어렵지 않다. 혹시 숫자로 꼭 해야한다면 10진수 들어온..

Remove Covered Intervals
Problem Solving 2020. 10. 4. 21:56

Remove Covered Intervals Remove Covered Intervals - 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 - 문제 내용 : [min,max]의 배열로 된 2중 Array를 줄경우 [min,max]내에 존재하는 타 [min', max'] Array를 삭제 하라 - 접근 방법 Greedy 알고리즘을 사용해서 접근하면 되는데, sorting 문제라고 생각하면 된다. min이 가장 작은 순서대로 sorting을 하는데, 만약 min이 ..