DFS
-
BinaryTree_Leetcode_236. Lowest Common Ancestor of a Binary Tree알고리즘/알고리즘 문제풀이 2025. 4. 3. 15:47
https://leetcode.com/problems/lowest-common-ancestor-of-a-binary-tree/description/?envType=study-plan-v2&envId=top-100-liked 문제접근DFS를 사용하여 p, q를 탐색탐색하며 지나온 TreeNode를 배열로 기록p,q를 찾았다면, 각자 지나온 기록 Treenode 배열에서 겹치는 마지막 element탐색탐색 결과 반환정답코드성능이 처참하다..831msBeats5.74%더보기/** * Definition for a binary tree node. * public class TreeNode { * public var val: Int * public var left: TreeNode? * pu..
-
BinaryTree, PrefixSum_Leetcode_2385. Amount of Time for Binary Tree to Be Infected [swift]알고리즘/알고리즘 문제풀이 2025. 3. 27. 17:17
https://leetcode.com/problems/amount-of-time-for-binary-tree-to-be-infected/description/ 문제 접근아이디어는 두 가지가 생각났다.node.val은 유니크하다. 그러므로 다익스트라 알고리즘으로 풀기최하단 노드로부터 depth를 계산하기 (dfs)정답 코드양방향 노드, 우선순위 Queue로 인해서 O(nlogn)처참한 성적642msBeats5.55% -> 95/100 ;;; 95등이라니!54.86MBBeats27.78%더보기더보기/** * Definition for a binary tree node. * public class TreeNode { * public var val: Int * public var left: Tre..
-
DFS/BFS_프로그래머스_여행경로알고리즘/알고리즘 문제풀이 2021. 11. 18. 18:34
https://programmers.co.kr/learn/courses/30/lessons/43164 문제이해 1. 티켓을 모두 사용하여 여행경로 작성. 2. 다수의 여행경로가 만들어질 경우, 알파벳 순서가 작은것을 return 접근방법 1. 첫번째 공항은 "ICN" 고정 2. 출발 공항을 기준하여 filter한 뒤, 알파벳 작은 순서로 다음 목적지 선택 3. tickets에서 다음 목적지를 삭제한 뒤, 다음 recursion 작동 오류 1. 티켓을 모두 사용하지 않음. 오답 코드 더보기 import Foundation func solution(_ tickets:[[String]]) -> [String] { return recursion(nowAP: "ICN", ticketArray: tickets) /..
-
DFS/BFS_LeetCode_keys-and-rooms알고리즘/알고리즘 문제풀이 2021. 8. 4. 17:41
접근 방향 첫번째 방의 키를 stack에 추가해서, stack에서 하나씩 빼면서 방을 돌아다니고, 들어간 방을 기록해서, rooms와 숫자 비교를 한다. 실패 코드 시간 초과에 의해 실패 생각해보니 vistied를 Set으로 해야 할 것 같다. 중복된 방을 들어 갈 수 도있으니까. 혹은, 방을 들어가기 전에, visited에 있는지 검사하는 방법 또한 있음. 더보기 class Solution { func canVisitAllRooms(_ rooms: [[Int]]) -> Bool { var visited: [Int] = [] var stack: [Int] = [] var sol = false stack.append(contentsOf: checkKey(room: rooms[0])) visited.appe..
-
DFS_LeetCode_Sum Root to Leaf Numbers알고리즘/알고리즘 문제풀이 2021. 7. 21. 15:48
https://leetcode.com/problems/sum-root-to-leaf-numbers/ 이론적으로 알고만 있던 DFS, BFS를 첫번째로 풀어봤다. 이전에 이론을 간단히 공부하고 간단한 알고리즘 문제를 시도해봤지만, 무참히 실패했었는데, 그 때엔 재귀를 사용할 생각을 못했기때문! 이번엔 재귀를 사용하여 풀이를 진행했다. 특이점으로는, LeetCode는 문제 자체에 class를 줘서 전역변수를 사용하여 진행했다. 재귀하는 함수가 return하는 내용이 없단 뜻! 코드 더보기 /** * Definition for a binary tree node. * public class TreeNode { * public var val: Int * public var left: TreeNode? * publ..