문자 "RLRRLL" 이 주어질 경우 2를 반환한다. 회문처럼 반복되는 것이 2번 있기 때문이다. "RL", "RRLL" 이렇게 두개가 있기 때문이다. 풀이 전략은 다음과 같다. left, right = ""로 두고 left와 right가 같아지는 시점에서 result값을 1개씩 올리면 된다. 아래 코드로 살펴보자. const balancedStringSplit = function(s) { let left = ""; let right = ""; let index = 0; let result = 0; while (index !== s.length) { if (s[index] === "R") { left += "L"; } else { right += s[index]; } if (left === right &..
BFS는 넓이 우선 탐색이다. 넓이를 우선적으로 탐색하는 것인데, 위의 경우 탐색순서가 다음과 같다. 1 -> 2 -> 3 -> 4 -> 5 -> 6 -> 7 숫자를 순서대로 따라가보면 옆으로 나열하듯 탐색하는 것을 알 수 있다. const store = { root: { id: 1, type: 'dir', name: 'first dir', sub: [ { id: 2, type: 'dir', name: 'first dir', sub: [ { id: 9, type: 'dir', name: 'first dir', sub: [], } ], }, { id: 8, type: 'dir', name: 'first dir', sub: [ { id: 4, type: 'dir', name: 'first dir', sub:..
https://slipp.net/questions/577 => 특정 git clone https://cjh5414.github.io/get-git-remote-branch/ => 특정 원격저장소 branch 가져오기 먼저 clone을 해준다. git clone -b {branch_name} --single-branch {저장소 URL} 이때 브랜치도 넘어온다. 집에서 작업을 하고 commit 한다음 바코에서 하던 같은 브랜치 이름으로 push 해준다. 난 다시 바코에 왔다. git remote update로 업데이트를 해준다. git fetch 브랜치이름. 하지만 이때 브랜치 이름은 그냥 kyeongti가 아니다. 그래서 브랜치를 검색한다. git branch -r 그다음 내브랜치명을 찾아서 git fe..
이번 알고리즘은 2개의 node value 값의 합이 주어진 k값과 같으면 true를 반환하고 없다면 false를 반환하는 문제이다. 어제에 문제를 풀고 in order로 풀어야겠다는 생각으로 쉽게 다가가서 약간 더럽게 풀었다.(왜그랬을까..) 오늘도 역시 인터넷을 뒤져 찾은 코드와 내 코드를 비교한다. 참고 코드 https://velog.io/@timevoyage/leetcode-653-Two-Sum-IV-Input-is-a-BST [leetcode #653] Two Sum IV - Input is a BST Given the root of a Binary Search Tree and a target number k, return true if there exist two elements in the ..
이번 문제는 아래 트리에서 노드간 절대값 차이가 가장 적은 것을 찾아 반환하는 문제이다. 위의 트리의 경우 가장 작은 차이는 4 - 3 = 1, 3 - 2 =1, 2 - 1 = 1 등등 1이 반환되어야 한다. 이번에 풀면서 처음으로 트리 순회라는 것에 대해 알게 되었다. 순회 방법은 3가지 (preorder, inorder, postorder) 등이 있다. 위 문제의 전략은 트리의 노드를 값의 크기 순으로 정렬을 해준다음, 원소들의 차를 비교하여 가장 크기가 작은 값을 반환하면 된다. 인터넷에서 찾은 코드와 내코드를 비교해 보자~~ (자기 공부용) stack over flow 에서 먼저 in order 순회에 대한 것을 찾아 보았다. (아래 참고) https://stackoverflow.com/quest..
가장 가까이에 있는 공통 부모를 찾는 문제이다. 인터넷 풀이는 나한테 생각보다 조금 어려웠다. 하지만 조금더 쉽게 다가가는 방법이 있다. 두가지 풀이를 써본다. 문제 위의 이진 트리에서 2, 8이 주어졌을때 공통분모는 6이다. 위의 이지 트리에서 2, 4가 주어졌을때 공통분모는 2이다. output이 6, 2 이런식으로 나오면 된다. Andy Gala 코드 https://www.youtube.com/watch?v=VSuZoj4YC1E var lowestCommonAncestor = function(root, p, q) { let result = null; function dfs(node) { if (node ===null) return false; const left = dfs(node.left); co..
보호되어 있는 글입니다.
자료구조에서 큐는 First in First out 구조이다. 즉 먼저 들어온 것이 먼저 나간다. 놀이기구를 타러 가면 보통 줄을 선다. 먼저 선 사람이 먼저 놀이기구를 타는 것과 같다고 생각하면 된다. enqueue의 기능은 배열의 내장 메소드인 push와 같다고 보면 되고, dequeue는 shift와 같다고 보면 된다. //queue const Queue = (function () { function Queue() { this.count = 0; this.head = null; this.rear = null; } function Node(data) { this.data = data; this.next = null; } Queue.prototype.enqueue = function (data) { c..