[LeetCode] 542. 01 Matrix, Medium
·
CodingTest/LeetCode
1. 문제m x n크기의 2차원 배열이 주어질 때, 값이 1인 좌표에는 인접한 0과의 최소 거리를 저장 후 반환하라.2. 해결const row = [-1, 1, 0, 0];const col = [0, 0, -1, 1];function updateMatrix(mat: number[][]): number[][] { const queue = new Array(); for(let i =0; i 0) { const [x,y] = queue.shift(); for(let i=0; i= 0 && adjustX =0 && adjustY 처음에는 1인 좌표부터 0을 찾아 1을 증가 시키는 뭐 그런식으로 접근했는데, 잘못된 접근이었다.BFS를 풀 때 방문 여부를 항상 고려해야 한..
[LeetCode] 733. Flood Fill, Easy
·
CodingTest/LeetCode
1. 문제2차원 배열과 sr, sc 좌표, color가 주어질 때, [sr,sc] 좌표의 color와 동일한 색상을 가지는 인접한 노드 전부를 color로 변경한 2차원 배열을 반환하라.2. 해결const row =[-1, 1, 0, 0];const col = [0, 0, -1, 1];function floodFill(image: number[][], sr: number, sc: number, color: number): number[][] { if(image[sr][sc] === color) { return image; } const originColor = image[sr][sc]; image[sr][sc] = color; for(let i=0 ; i=0 && ..
[LeetCode] 394. Decode String, Medium
·
CodingTest/LeetCode
1. 문제k[encode_string]형태로 구성된 문자열이 주어질 때, 대괄호 안의 문자를 앞에 숫자만큼 반복해서 문자열을 재생성하여 반환하라.2. 해결function decodeString(s: string): string { const stack = new Array(); for(const char of s) { if(char !== ']') stack.push(char); else { let str ='' , multiple = ''; while(stack[stack.length -1] !== '[') { str = stack.pop() + str; ..
[LeetCode] 225. Implement Stack using Queues, Easy
·
CodingTest/LeetCode
1. 문제2개의 큐를 사용해서 stack을 구현하라2.해결class MyStack { inputQueue: number[]; outputQueue: number[]; constructor() { this.inputQueue = new Array(); this.outputQueue = new Array(); } push(x: number): void { while(this.outputQueue.length > 0) { this.inputQueue.push(this.outputQueue.shift()) } this.inputQueue.push(x); while(this.in..
[LeetCode] 232. Implement Queue using Stacks, Easy
·
CodingTest/LeetCode
1. 문제2개의 Stack을 활용해 FIFO 구조의 큐를 구현하라. push, pop, peek, empty 함수 구현.Stack의 기능으로 구현해야 한다. top을 통한 push, top을 통한 pop/peek 등2. 해결class MyQueue { inputStack: number[] outputStack: number[] constructor() { this.inputStack = new Array(); this.outputStack = new Array(); } push(x: number): void { while(this.outputStack.length > 0) { this.inputStack.p..
[LeetCode] 94. Binary Tree Inorder Traversal, Easy
·
CodingTest/LeetCode
1. 문제이진트리가 주어질 때, 중위 순회 결과를 반환하라.2. 해결/** * Definition for a binary tree node. * class TreeNode { * val: number * left: TreeNode | null * right: TreeNode | null * constructor(val?: number, left?: TreeNode | null, right?: TreeNode | null) { * this.val = (val===undefined ? 0 : val) * this.left = (left===undefined ? null : left) * this.right = (right===undefi..
[LeetCode] 494. Target Sum, Medium
·
CodingTest/LeetCode
1. 문제정수 배열이 주어질 때, 각 요소를 +와 -를 활용해 조합하여 target 수를 만들 수 있는 경우의 수를 반환하라.2. 해결function DFS(nums: number[], target: number, sum:number, index: number) { if(index === nums.length) { return sum === target ? 1 : 0; } return DFS(nums,target, sum + nums[index], index +1) + DFS(nums,target, sum -nums[index], index +1);}function findTargetSumWays(nums: number[], target: number): num..
[LeetCode] 133. Clone Graph, Medium
·
CodingTest/LeetCode
1. 문제val와 neighbors 필드를 가지는 노드로 구성된 그래프가 주어질 때, 이를 원래 노드를 참조하지 않는 새로운 노드로 구성된 그래프를 구성하라.2. 해결/** * Definition for _Node. * class _Node { * val: number * neighbors: _Node[] * * constructor(val?: number, neighbors?: _Node[]) { * this.val = (val===undefined ? 0 : val) * this.neighbors = (neighbors===undefined ? [] : neighbors) * } * } * */function DFS(node: _Node, ..
[LeetCode] 150. Evaluate Reverse Polish Notation, Medium
·
CodingTest/LeetCode
1. 문제역 폴란드 표기법으로 제공되는 문자열 배열의 계산 결과를 반환하라.2. 해결function evalRPN(tokens: string[]): number { const stack = []; const operator = ['*', '-','+','/']; for(const token of tokens) { if(!operator.includes(token)) stack.push(Number(token)); else { const target1 = stack.pop(); const target2 = stack.pop(); if(token === '+') stack.push(tar..
[LeetCode] 739. Daily Temperatures, Medium
·
CodingTest/LeetCode
1. 문제매 일 측정한 온도 배열 temperatures가 주어질 때, 각 요소 별로 다음으로 온도가 높아지기 까지 며칠이 걸리는 지 계산한 배열을 반환하라.2. 해결function dailyTemperatures(temperatures: number[]): number[] { const result = new Array(temperatures.length).fill(0); const stack = []; for(let i =0; i 0 && temperatures[i] > temperatures[stack[stack.length-1]]) { const prevIndex = stack.pop(); result[prevIndex] = i - prevI..