본문 바로가기

Algorithm/DFS

(45)
(Python3) - LeetCode (Medium) : 802. Find Eventual Safe States https://leetcode.com/problems/find-eventual-safe-statesdfs 문제였습니다.📕 풀이방법📔 입력 및 초기화다음 변수를 선언합니다.📑 node별로 state를 저장할 배열을 선언합니다.📔 풀이과정📑 terminal node인지 검사하는 dfs를 구현합니다.기저 반환값을 지정합니다: cycle이 발생한다면 말단이 아니므로 False를 아니라면 말단이므로 True를 반환합니다.중간 계산값을 반환합니다: 현재 node의 state를 1로 만들어주고 이웃이 말단인지 검사해 그 중 하나라도 말단이 아니라면 False를 반환합니다.이웃들이 모두 말단이므로 현 node도 말단이기 때문에 True를 반환합니다.📑 시간 복잡도각 node별로 한 번 씩 검사하므로 O(N..
(Python3) - LeetCode (Medium) : 494. Target Sum https://leetcode.com/problems/target-summemoization을 활용한 dfs문제였습니다.📕 풀이방법📔 입력 및 초기화1. 변수 depth선언 후 nums의 길이를 저장합니다. 2.(각 depth별 만들어진 숫자를 key로), 만드는 경우의 수를 value로 hash map인 memo를 선언 후 빈 객체로 초기화합니다.📔 풀이과정문제는 중복 상태를 메모이제이션으로 방지하며 재귀 호출을 최적화하는 방식으로 해결할 수 있습니다. nums 배열의 길이가 최대 20이며 각 원소는 1000 이하, 합계는 -20,000 ~ 20,000 범위를 가지므로 ${( n \cdot S = 20 \cdot 40,001 \approx 800,000 )}$번의 계산으로 해결 가능합니다.풀이 과..
(C++) - LeetCode (easy) 1379. Find a Corresponding Node of a Binary Tree in a Clone of That Tree https://leetcode.com/problems/find-a-corresponding-node-of-a-binary-tree-in-a-clone-of-that-tree/description/ Find a Corresponding Node of a Binary Tree in a Clone of That Tree - LeetCode Can you solve this real interview question? Find a Corresponding Node of a Binary Tree in a Clone of That Tree - Given two binary trees original and cloned and given a reference to a node target in the original..
(C++) - LeetCode (easy) 993. Cousins in Binary Tree https://leetcode.com/problems/cousins-in-binary-tree/description/ LeetCode - The World's Leading Online Programming Learning Platform Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 자료구조 순회 문제였습니다. 📕 풀이방법 📔 입력 및 초기화 구조체 Info를 선언합니다. node의 깊이 depth와 부모정보 parent를 member 변수로 선언했습니다.x와 y의 정보를 저..
(C++) - LeetCode (easy) 965. Univalued Binary Tree https://leetcode.com/problems/univalued-binary-tree/description/ LeetCode - The World's Leading Online Programming Learning Platform Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com tree 순회 문제였습니다. 📕 풀이방법 📔 입력 및 초기화 tree node의 종류를 저장할 set s를 선언해줍니다. 📔 풀이과정 preOrder로 s에 각 tree node를 순회한 결과를 저..
(C++) - LeetCode (easy) 938. Range Sum of BST https://leetcode.com/problems/range-sum-of-bst/description/ Range Sum of BST - LeetCode Can you solve this real interview question? Range Sum of BST - Given the root node of a binary search tree and two integers low and high, return the sum of values of all nodes with a value in the inclusive range [low, high]. Example 1: [https://assets.l leetcode.com 재귀 구현 문제였습니다. 📕 풀이방법 📔 풀이과정 왼쪽 sub tree 의 정..
(C++) - LeetCode (easy) 700. Search in a Binary Search Tree https://leetcode.com/problems/search-in-a-binary-search-tree/description/ Search in a Binary Search Tree - LeetCode Can you solve this real interview question? Search in a Binary Search Tree - You are given the root of a binary search tree (BST) and an integer val. Find the node in the BST that the node's value equals val and return the subtree rooted with that node. If leetcode.com 재귀를 통해 답을 찾는..
(C++) - LeetCode (easy) 404. Sum of Left Leaves https://leetcode.com/problems/sum-of-left-leaves/description/ Sum of Left Leaves - LeetCode Can you solve this real interview question? Sum of Left Leaves - Given the root of a binary tree, return the sum of all left leaves. A leaf is a node with no children. A left leaf is a leaf that is the left child of another node. Example 1: [https://ass leetcode.com 재귀를 이용한 자료구조 문제였습니다. 📕 풀이방법 📔 풀이과정 현재 n..