본문 바로가기

Leetcode

(107)
[Leetcode] 200. Number of Islands - JS https://leetcode.com/problems/number-of-islands/?envType=study-plan-v2&envId=top-interview-150 1. 문제 분석문제분석--------------------1(땅), 0(물)의 지도를 나타내는 m x n 이진 그리드가 주어질 때,섬의 갯수를 반환하라.섬은 물로 둘러싸여 있고 인접한 육지가 수평 또는 수직으로 연결되어 형성된다.제한조건--------------------- m == grid.length- n == grid[i].length- 1  2. 접근 방법 - DFS접근방법--------------------DFS(깊이우선탐색)으로 접근한다.현재 요소가 '1'이면, 섬에 방문한 것으로 카운트 값 증가시킨다.현재 요소와 인접한 요소..
[Leetcode] 98. Validate Binary Search Tree - JS https://leetcode.com/problems/validate-binary-search-tree/description/?envType=study-plan-v2&envId=top-interview-150 1. 문제 분석문제분석--------------------이진트리의 루트가 주어질 때, 유효한 BST(이진검색트리)인지 확인하라.- 왼쪽 하위 트리에는 노드의 값보다 작은 값을 가진 노드들만 포함한다.- 오른쪽 하위 트리에는 노드의 값보다 큰 값을 가진 노드들만 포함한다.- 왼쪽, 오른쪽 모두 BST여야 한다.제한조건--------------------- 노드의 갯수는 1 ~ 10^4개이다.- -2^31  2. 접근 방법접근방법--------------------재귀함수에 노드와 노드 값의 최대, ..
[Leetcode] 230. Kth Smallest Element in a BST - JS https://leetcode.com/problems/kth-smallest-element-in-a-bst/description/?envType=study-plan-v2&envId=top-interview-150  1. 문제 분석문제분석--------------------이진검색트리의 root와 정수 k가 주어질 때,모든 노드 중에서 k번째로 작은 값을 반환하라.제한조건--------------------- 1  2. 접근 방법접근방법--------------------중위순회하면 오름차순으로 순회가 가능하다.각 노드 순회시마다 count값 증가하여 k번째와 동일한 node의 값을 반환한다. 3. 코드/** * Definition for a binary tree node. * function TreeNo..
[Leetcode] 530. Minimum Absolute Difference in BST - JS https://leetcode.com/problems/minimum-absolute-difference-in-bst/description/?envType=study-plan-v2&envId=top-interview-150  1. 문제 분석문제분석--------------------이진 검색 트리(BST)의 루트가 주어졌을 때, 트리 내의 두 노드 사이의 절대값 차이의 최솟값을 반환하라.제한조건--------------------- 노드의 갯수는 2 ~ 10^4개이다.- 0  2. 접근 방법접근방법--------------------이진 검색 트리는 부모노드 기준 값이 작으면 왼쪽,값이 크면 오른쪽 노드로 배치된다.중위 순회를 사용하면 제일 값이 작은 값부터 오름차순으로 순회할 수 있다.오름차순으로 순회 ..
[Leetcode] 103. Binary Tree Zigzag Level Order Traversal - JS https://leetcode.com/problems/binary-tree-zigzag-level-order-traversal/description/?envType=study-plan-v2&envId=top-interview-150  1. 문제 분석문제분석--------------------이진트리의 Root가 주어졌을 때, 지그재그로 레벨별 순회하여 그 값들을 반환하라.예를들어, 왼쪽 -> 오른쪽 방향으로 향했으면 다음 레벨에선 오른쪽에서 왼쪽 방향으로 교대로 향한다.제한조건--------------------- 노드의 갯수는 0 ~ 2000개이다.- -100  2. 접근 방법접근방법--------------------BFS순회는 무조건 왼쪽에서 오른쪽 노드로 순회했다.오른쪽에서 왼쪽으로 순회하려면 어..
[Leetcode] 102. Binary Tree Level Order Traversal - JS https://leetcode.com/problems/binary-tree-level-order-traversal/description/?envType=study-plan-v2&envId=top-interview-150  1. 문제 분석문제분석--------------------이진트리의 root가 주어질 때, 같은 레벨별 왼쪽에서 오른쪽 순서대로 순회한 node.val을 배열로 반환하라.제한조건--------------------- 노드의 갯수는 0 ~ 2000개이다.- -1000  2. 접근 방법접근방법--------------------BFS 순회하면서 레벨별로 배열을 생성하고각 레벨에서 왼쪽에서 오른쪽으로 순회하면서 레벨별 배열에 값을 추가한다.레벨별 순회가 끝날 때, 결과 배열에 레벨별 배열을 ..
[Leetcode] 637. Average of Levels in Binary Tree - JS https://leetcode.com/problems/average-of-levels-in-binary-tree/?envType=study-plan-v2&envId=top-interview-150 1. 문제 분석문제분석--------------------이진트리의 root가 주어질 때, 각 레벨의 평균값을 배열로 반환하라.제한조건--------------------- 노드의 갯수는 1 ~ 10^4개이다.- -2^31  2. 접근 방법접근방법--------------------BFS로 순회하면서 queue 자료구조에 노드를 담는다.BFS로 순회 시 다음 레벨의 자식 노드를 순서대로 담으므로 자식 노드의 갯수만큼 반복문을 실행해줘서 노드의 값을 total 변수에 추가한다.반복문 종료시 total 변수를 반복..
[Leetcode] 199. Binary Tree Right Side View - JS https://leetcode.com/problems/binary-tree-right-side-view/description/?envType=study-plan-v2&envId=top-interview-150 1. 문제 분석문제분석--------------------이진트리의 root가 주어질 때, 오른쪽에서 보고있다고 가정하고 최상층에서 최하층 순서대로 보이는 노드의 값들을 반환하라.제한조건--------------------- 노드의 갯수는 0 ~ 100개이다.- -100  2. 접근 방법접근방법--------------------BFS로 순회하면서 노드를 담는다.BFS로 순회 시 다음 레벨의 자식 노드를 순서대로 담으므로 자식 노드의 갯수만큼 반복문을 실행해줘서 그 때마다 우측의 노드로 갱신해준 값..