[LeetCode] 209. Minimum Size Subarray Sum, Medium
·
CodingTest/LeetCode
1. 문제배열 nums가 주어졌을 때, 이를 탐색하여 target보다 크거나 같은 값을 가지는 subarray의 가장 짧은 길이를 반환하시오.2. 해결function minSubArrayLen(target: number, nums: number[]): number { let pointer1 = 0, pointer2 = 0; let result = Number.MAX_SAFE_INTEGER, window=0; while(pointer1 슬라이딩 윈도우를 써서 풀어봤다. 개념 자체는 알고 있었는데 관련 문제는 처음 풀어보는 거 같다.이 문제에서 윈도우 내 합이 target보다 작으면, pointer2를 이동시켜 확장하고 크거나 같으면 result 변수에 최소 길이를 계..
[LeetCode] 167. Two Sum II - Input Array Is Sorted, Medium
·
CodingTest/LeetCode
1. 문제1번 인덱스를 사용하는 배열 numbers와 target이 주어질 때, 두 요소의 합이 target이 되는 인덱스를 배열에 담아 반환하라.2. 풀이function twoSum(numbers: number[], target: number): number[] { let left = 0, right = numbers.length -1; while(left target) right--; else left++; } return [left+1,right+1]};투포인터를 사용해서 양쪽에서 탐색하며, 두 합이 target보다 크면 right를 감소시키고 작으면 left를 증가시켜가며 인덱스를 찾고, 1번 인덱스를 기준으로 하므로 각 인덱스를 +1하여 배열에 ..
[LeetCode] 54. Spiral Matrix, Medium
·
CodingTest/LeetCode
1. 문제m x n 크기의 2차원 배열이 주어질 때, 그림과 같이 탐색하여 요소를 순서대로 담은 배열을 반환하라.2. 풀이function spiralOrder(matrix: number[][]): number[] { let i = 0, j = 0; // i, j 인덱스 let m = matrix.length, n = matrix[i].length; // 배열 크기. const result = []; // 결과를 담을 배열. let dir: 'right' | 'down' | 'left' | 'up' = 'right'; // matrix 방향 정보. while(result.length 메인 컨셉은 요소의 방문 여부를 알고, 방향을 전환하는 것이라고 생각..
[LeetCode] 498. Diagonal Traverse, Medium
·
CodingTest/LeetCode
1. 문제그림과 같이 사각형이 주어질 때, 대각선으로 탐색하면서 요소들을 순서대로 배열에 담아 반환하라.2. 해결function findDiagonalOrder(mat: number[][]): number[] { let i =0, j =0; // i, j 인덱스 let isUp = true; // 위 또는 아래 방향 const result = [] // 결과 배열 // i와 j가 마지막 인덱스에 도달할 때 까지 반복. while(i i를 증가 시켜 밑으로 내린다. } else if(!isUp) { // 내려가는 경우면, if(j === 0 || i === mat.length -1) { // j가 0 또는 i가 마지막 인덱스일 때, ..