DFS2 [LeetCode] 2658번: Maximum Number of Fish in a Grid Hint 1. 물고기가 있는 곳에서 DFS 알고리즘을 이용해 물고기 수 세기 2. DFS 시작지점을 찾았다면 연결된 모든 물고기 있는 곳에서 물고기 수 더하기 3. 물고기 있는 곳을 이미 방문했는지 확인하는 리스트가 필요함 (중복으로 더하기 않게) LeetCode 2658번: Maximum Number of Fish in a Grid (풀어보기) class Solution: def findMaxFish(self, grid: List[List[int]]) -> int: # 낚시가 이미 된 부분 표시해주는 세트 fished = set() def fishing(r, c): # 아래 3가지가 다 통과하지 못하면 물고기가 없으므로 0을 반환함 if not (0 2023. 5. 1. [LeetCode] 226번: Invert Binary Tree Hint 1. DFS 알고리즘 사용해야함 2. 왼쪽과 오른쪽에 자식 노드가 있다면 바꿔치기 해주면 됨 LeetCode 226번: Invert Binary Tree (풀어보기) class Solution: def invertTree(self, root: Optional[TreeNode]) -> Optional[TreeNode]: def dfs(root): # 노드인지 확인. 노드가 아니라면 None 값이기 때문에 not을 해줘야 True가 됨 if not root: return root# 노드가 아니기 때문에 바꿔치기 안하고 그냥 반환 dfs(root.left)# 왼쪽 노드의 자식 노드 뒤집기 dfs(root.right)# 오른쪽 노드의 자식 노드 뒤집기 # 왼쪽 노드와 오른쪽 노드 바꿔치기 root.le.. 2023. 3. 10. 이전 1 다음