top150 36

Graphs(싸이클탐지): 207. Course Schedule ★★★

207. Course Schedule https://youtu.be/EgI5nU9etnU?si=bTi7R-EQNB2-fzZ2 class Solution: def canFinish(self, numCourses: int, prerequisites: List[List[int]]) -> bool: # 선수 과목 정보를 저장할 딕셔너리를 초기화합니다. # Initialize a dictionary to store prerequisite information. preMap = {i: [] for i in range(numCourses)} # prerequisites 리스트의 각 쌍 [course, pre]에 따라 preMap을 채웁니다. # Fi..

Graphs: 133. Clone Graph

133. Clone Graph 이 문제는 연결된 무방향 그래프를 깊은 복사(deep copy)하라는 것입니다. 조금 더 쉽게 설명하자면, 그래프 전체를 복제하라는 것입니다. 그래프는 노드들로 이루어져 있고, 각 노드는 값(val)과 이웃 노드 목록(neighbors)을 가지고 있어요.핵심 포인트입력으로 주어진 그래프는 Node로 표현된 연결 그래프입니다.예를 들어, 노드 1은 Node(1)이고, 이웃 노드가 [2, 4]라면 Node(1).neighbors = [Node(2), Node(4)]와 같은 식으로 표현됩니다.이웃 노드가 연결된 그래프를 복사할 때, 모든 노드와 이웃 정보를 새로운 그래프로 깊은 복사를 해야 합니다.단순히 복사하는 것이 아니라, 새로운 메모리에 새로운 노드들을 만들어야 합니다.그래..

Graphs: 130. Surrounded Regions★★

130. Surrounded Regions 이 문제에서는 주어진 m × n 크기의 보드에서 O로 이루어진 영역이 X로 둘러싸여 있는 경우,==> 해당 영역의 모든 O를 X로 바꾸는 것입니다.다만, 보드의 가장자리와 연결된 O는 둘러싸인 영역으로 간주하지 않으며 그대로 유지합니다.문제를 해결하기 위한 접근 방식가장자리와 연결된 O를 찾기:보드의 가장자리에서 시작하여, O로 이루어진 영역을 탐색하고, 해당 영역을 방문 처리합니다.이 과정에서 가장자리와 연결된 O는 둘러싸이지 않은 영역임을 표시합니다.O를 X로 바꾸기:보드 전체를 순회하며, 방문되지 않은 O는 둘러싸인 영역이므로 X로 바꿉니다.방문된 O는 가장자리와 연결된 영역이므로 그대로 유지합니다.탐색 방식:DFS나 BFS를 사용하여 O로 이루어진 영역을..

Tree: 124. Binary Tree Maximum Path Sum

124. Binary Tree Maximum Path Sum 문제가 요구하는 것Binary Tree Maximum Path Sum:트리에서 경로의 최대 합을 구하는 문제입니다."경로"는 트리의 어떤 노드에서 시작하여 하위 노드를 따라가거나, 중간에서 멈출 수 있으며, 반드시 루트를 거칠 필요는 없습니다.경로의 합은 경로에 있는 노드 값들의 합으로 계산됩니다."최대 합"은 가능한 경로들 중 가장 큰 합입니다.Mutable(변경 가능) 객체 와 Immutable(변경 불가능) 객체파이썬에서 mutable(변경 가능) 객체와 immutable(변경 불가능) 객체는 객체의 성질에 따라 구분됩니다. 아래는 각각의 주요 예시를 정리한 표입니다.1. Mutable(변경 가능) 객체특징:객체를 생성한 후 내부 데이터를..

105. Construct Binary Tree from Preorder and Inorder Traversal

105. Construct Binary Tree from Preorder and Inorder Traversal https://youtu.be/ihj4IQGZ2zc?si=xp7MO4VGo3NIKjnW class Solution: def buildTree(self, preorder: List[int], inorder: List[int]) -> Optional[TreeNode]: # 문제 접근법: # 1. Preorder 배열의 첫 번째 값은 항상 현재 서브트리의 루트 노드 값입니다. # 1. The first value in the preorder array is always the root node of the current subtree. # 2...