일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- dfs #bfs #이진트리 #파이썬 #리트코드
- python #백준 #2580 #스도쿠 #dfs #백트래킹
- 다익스트라 #알고리즘 #bfs #그리디 #다이나믹프로그래밍 #leetcode #python
- 리트코드 #팰린드롬 #파이썬
- 2004 #조합 0의 개수 #백준
- 아스테리스크 #Asterisk #파이썬
- dfs #그래프 #graph #python #leetcode #course #schedule
- leetcode #python #dfs #재귀
- dfs #python #leetcode #combination
- final #java #자바 #안드로이드
- dfs #leetcode #python #graph #그래프
- python #백준 #9375 #패션왕 #신해빈
- exoplayer #mediaplayer #엑소플레이어 #안드로이드 #android
- dfs #leetcode #python
- gcd #최대공약수 #백준 #2981 #검문
- 다익스트라 #dijkstra #leetcode #파이썬 #python #algorithm #787
- dfs #이진트리 #트리구조 #직렬화 #역직렬화 #파이썬 #리트코드 #leetcode #python
- handler #looper #thread #runnable #핸들러 #루퍼 #스레드 #러너블
- 백준 #파이썬 #bfs #백트래킹 #1697 #숨바꼭질
- dfs #bfs #트리구조 #이진트리 #leetcode #파이썬 #python
- 코틀린 #Do it #깡샘 #안드로이드
- Python #leetcode #dfs #그래프 #백트래킹
- AsyncTask #doinbackground #스레드 #thread #android #안드로이드
- leetcode #subsets #dfs #itertools #python
- dfs #python #leetcode
- 파이썬 #zip
- dfs #bfs #트리구조 #이진트리 #leetcode #python #파이썬
- 해시테이블 #heapq #파이썬 #리트코드 #알고리즘
- dfs #bfs #leetcode #python
- context #android #getApplicationContext #activity #생명주기 #lifecycle
- Today
- Total
목록Algorithm Study (61)
멋진 개발자가 되고 싶다
문제 단어 리스트에서 words [i] + words [j]가 팰린드롬이 되는 모든 인덱스 조합 (i, j)를 구하라 ex) Input: words = ["abcd","dcba","lls","s","sssll"] Output: [[0,1],[1,0],[3,2],[2,4]] Explanation: The palindromes are ["dcbaabcd","abcddcba","slls","llssssll"] 해설 처음 봤을 땐 브루트포스로 쉽게 해결 가능해 보였지만 역시나 hard 문제답게 TLE가 떠버림.. 결국 Trie를 써서 해결해야 되는 문젠데.. Trie 자체는 이해가 되는데 팰린드롬이 되는 경우의 수를 따지는 게 어려웠다. 결국 답도 보고 검색도 해보고 이해는 된 상황! 우선 코드부터 보자! 1 ..
이진 트리가 높이 균형인지 판단하라. ※ 높이 균형은 모든 노드의 서브 트리 간의 높이 차이가 1 이하인 것을 말한다. 1. 재귀 구조로 높이 차이 계산 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 # Definition for a binary tree node. # class TreeNode: # def __init__(self, val=0, left=None, right=None): # self.val = val # self.left = left # self.right = right class Solution: def isBalanced(self, root: Optional[TreeNode]) -> bool: def check(root): if not root..
이진 트리를 배열로 직렬화하고, 반대로 역직렬화하는 기능을 구현하라. 즉 다음과 같은 트리는 [1,2,3,null,,null,4,5] 형태로 직렬화할 수 있을 것이다. 1. 직렬화 & 역직렬화 구현 (1) 직렬화 1 2 3 4 5 6 7 8 9 10 11 12 13 14 def serialize(self, root): # BFS로 구현 queue = collections.deque([root]) output = ['#'] while queue: node = queue.popleft() if node: queue.append(node.left) queue.append(node.right) output.append(str(node.val)) else: output.append('#') return ' '.j..
Given the root of a binary tree, invert the tree, and return its root. Example Input: root = [4,2,7,1,3,6,9] Output: [4,7,2,9,6,3,1] 1. 파이썬다운 방식 1 2 3 4 5 6 7 8 9 10 11 12 # Definition for a binary tree node. # class TreeNode: # def __init__(self, val=0, left=None, right=None): # self.val = val # self.left = left # self.right = right class Solution: def invertTree(self, root: Optional[TreeNode])..
동일한 값을 지닌 가장 긴 경로를 찾아라. Example Input: root = [5,4,5,1,1,5] Output: 2 1. 상태 값 거리 계산 DFS 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 # Definition for a binary tree node. # class TreeNode: # def __init__(self, val=0, left=None, right=None): # self.val = val # self.left = left # self.right = right class Solution: result = 0 def longestUnivaluePath..
이진 트리에서 두 노드 간 가장 긴 경로의 길이를 출력하라. Example: Input: root = [1,2,3,4,5] Output: 3 Explanation: 3 is the length of the path [4,2,1,3] or [5,2,1,3]. 1. 상태값 누적 트리 DFS 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 # Definition for a binary tree node. # class TreeNode: # def __init__(self, val=0, left=None, right=None): # self.val = val # self.left = left # self.rig..
이진 트리의 최대 깊이를 구하라. example: Input: root = [3,9,20, null, null,15,7] Output: 3 1. 내가 푼 코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 # Definition for a binary tree node. # class TreeNode: # def __init__(self, val=0, left=None, right=None): # self.val = val # self.left = left # self.right = right class Solution: def maxDepth(self, root: Optional[TreeNode]) -> int: result = [] def ..
시작점에서 도착점까지의 가장 저렴한 가격을 계산하되, k개의 경유지 이내에 도착하는 가격을 리턴하라. 경로가 존재하지 않을 경우 -1을 리턴한다. Input: n = 3, flights = [[0,1,100], [1,2,100], [0,2,500]], src = 0, dst = 2, k = 1 Output: 200 Explanation: The graph is shown. The cheapest price from city 0 to city 2 with at most 1 stop costs 200, as marked red in the picture. 1. 책 내의 풀이 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 class Solution: def findCheapestPrice(s..