Algorithm101 [BOJ] 2417 | 정수 제곱근 2417 | 정수 제곱근 https://www.acmicpc.net/problem/2417 작성 코드 python - 제곱근 함수 사용 import math n = int(input()) i = int(math.sqrt(n)) if i**2 > n; i = sqrt(n); if(n > (i * i)) i++; cout 2022. 5. 11. [트리] 가장 긴 동일 값의 경로 687 | Longest Univalue Path https://leetcode.com/problems/longest-univalue-path/ 작성 코드 접근 방법 현재 있는 노드의 val 과 왼쪽, 오른쪽의 val 이 같다면 dfs 탐색 # 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 longestUnivaluePath(self, root: Optional[TreeNode]) -> int: def dfs(node, length): if nod.. 2022. 5. 10. [LeetCode] 작성 코드 접근 방법 첫번째 루트 노드의 왼쪽 노드 중 최대 깊이 + 오른쪽 노드 중 최대 깊이 return # Definition for a binary tree node. import collections class TreeNode: def __init__(self, val=0, left=None, right=None): self.val = val self.left = left self.right = right class Solution: def diameterOfBinaryTree(self, root: Optional[TreeNode]) -> int: if not root: return 0 if not root.left: depth_left = 0 else: deque_left = collectio.. 2022. 5. 9. [트리] 이진 트리의 최대 깊이 104 | Maximum Depth of Binary Tree https://leetcode.com/problems/maximum-depth-of-binary-tree/ 이상 코드 import collections # Definition for a binary tree node. class TreeNode: def __init__(self, x): self.val = x self.left = None self.right = None class Solution: def maxDepth(self, root: TreeNode) -> int: if root is None: return 0 queue = collections.deque([root]) depth = 0 while queue: depth += 1 #.. 2022. 5. 4. [LeetCode] 22 | Generate Parentheses 22 | Generate Parentheses https://leetcode.com/problems/generate-parentheses/ 작성 코드 class Solution: def generateParenthesis(self, n: int) -> List[str]: combs = [] def dfs(s, n, leave, depth): leave_tmp = leave[:] if depth == 2 * n: combs.append(s) print(s) return if leave_tmp[0] == 0: print(1, s) s += ")" leave_tmp[1] -= 1 dfs(s, n, leave_tmp, depth + 1) else: if leave_tmp[0] == leave_tmp[1]: pr.. 2022. 5. 3. [LeetCode] 53 | Maximum Subarray 53 | Maximum Subarray https://leetcode.com/problems/maximum-subarray/ 작성 코드 class Solution: def maxSubArray(self, nums: List[int]) -> int: prev_sum = nums[0] for i in range(len(nums)): for j in range(i, len(nums)): if sum(nums[i : j + 1]) > prev_sum: prev_sum = sum(nums[i : j + 1]) return prev_sum i, j 로 돌면서 nums[i:j+1]이 prev_sum 이 prev_sum 보다 클 경우 prev_sum 갱신 시간 초과 발생 class Solution: def maxSub.. 2022. 5. 2. 이전 1 ··· 4 5 6 7 8 9 10 ··· 17 다음 반응형