5장 연습문제 다시 보기
1 | const findSumBetter = (arr, weight) => { |
1 | const findSumBetter = (arr, weight) => { |
1 | function solution(skill, skill_trees) { |
1 | 1. 입력이 빈 문자열인 경우, 빈 문자열을 반환합니다. |
1 | function solution(p) { |
1 | function solution(p) { |
1 | function solution(numbers) { |
1 | function solution(nums) { |
1 | 1. 모든 대문자를 대응되는 소문자로 치환합니다. |
1 | function solution(new_id) { |
1 | 맨 처음 왼손 엄지손가락은 * 키패드에 오른손 엄지손가락은 # 키패드 위치에서 시작하며, 엄지손가락을 사용하는 규칙은 다음과 같습니다. |
1 | function solution (numbers, hand) { |
1 | function solution(x) { |
1 | function solution(board, moves) { |
1 | function solution(dartResult) { |
1 |
|
1 | function solution(nums) { |
1 | function solution (board) { |
1 | 조건 1. n의 다음 큰 숫자는 n보다 큰 자연수 입니다. |
1 | function solution (n) { |
1 | function nextBigNumber(n) { |
1 | function solution(s){ |
1 | let split = s.split('') |
1 | function solution2_1(s) { |
1 | 1. 한 번의 루프마다 progresses[index] + speeds[index]를 한다 |
1 | function solution(progresses, speeds) { |
1 | 1. 각 기능마다 걸리는 시간을 소수점자리 올림으로 계산하여 배열을 만듦 |
1 | function solution(progresses, speeds) { |
1 | function solution(numbers) { |
1 | 1. 인쇄 대기목록의 가장 앞에 있는 문서(J)를 대기목록에서 꺼냅니다. |
1 | function solution(priorities, location) { |
1 | let cache = {}; |
1 | const knapsackDP = (idx, weights, values, target, matrix) => { |
1 | if (두 수열의 마지막 글자가 일치한다면) { |
1 | const LCSNaive = (str1, str2, str1Length, str2Length) => { |
1 | const longestCommonSequenceLength = (str1, str2) => { |
coinChange(S, M, n) = coinChange(S, M-1, N) + coinChanges(S, M, N-Sm)
1 | // coinArr의 인덱스는 [0, ..., coinIndex] |
1 | const countCoinWaysDP = (coinArr, coinIndex, total) => { |
1 | if (문자가 동일하다) |
1 | const editDistanceRecursive = (str1, str2, length1, length2) => { |
1 | const editDistanceDP = (str1, str2, length1 = str1.length, length2 = str2.length2) => { |
a = 1100, b = 1010일 때, a & b = 1000이다
a = 1100, b = 1010일 때, a & b = 1110이다
a = 1100, b = 1010일 때, a & b = 0110이다
a = 1100일 때 NOT a = 0011이다
9(1001) << 1 = 10010(2) = 18
, 9 << 2 = 100100(2) = 36
9(1001) >> 1 = 100(2) = 4
1 | // 이진수를 더하기는 두 수를 더한 다음 10을 초과하면 1을 다음 수로 올린다 (carry) |
1 | class TrieNode { |
1 | const buildBadMatchTable = str => { |
1 | const boyerMoore = (str, pattern) => { |
1 | const longestPrefix = str => { |
1 | class RabinKarpSearch { |
1 | class Heap { |
1 | class MinHeap extends Heap{ |
1 | bubbleDown() { |
노드 | 인덱스 |
---|---|
자신 | N |
부모 | (N - 1) / 2 |
왼쪽 자식 | (N * 2) + 1 |
오른쪽 자식 | (N * 2) + 2 |
1 | /* |
1 | let arr = [12, 3, 13, 4 ,2, 40, 23]; |
단어 | 뜻 |
---|---|
정점 | 그래프를 형성하는 노드로 원으로 표기 |
간선 | 그래프에서 노드 간의 연결로 정점(원)사이의 선으로 표기 |
정점 차수 | 해당 점점에 연결된 간선의 개수 |
희소 그래프 | 정점들 간 가능한 연결 중 일부만 존재하는 경우 |
밀집 그래프 | 다양한 정점들 간에 연결이 많은 경우 |
순환 그래프 | 어떤 정점에서 출발해 해당 정점으로 다시 돌아오는 경로가 있는 지향성 그래프 |
가중치 | 간선에 대한 값으로 문맥에 따라 다양한 것을 나타냄(정점 간 거리 등) |
1 | class UndirectedGraph { |
1 | class DirectedGraph { |
1 | function _isEmpty(obj) { |
1 | // class DirectedGraph 내부라고 가정 |
1 | class BinaryTreeNode { |
1 | // 선순위 |
1 | class BinarySearchTree { |
1 | class AVLTree { |
1 | function findLowestCommonAncester(root, value1, value2) { |
1 | const printKthLevels = (root, k) => { |
1 | const isSameTree = (root1, root2) => { |
1 | /* |
author.bio
author.job