Algorithm/LeetCode24 [LeetCode] 191 | Number of 1 Bits 191 | Number of 1 Bits https://leetcode.com/problems/number-of-1-bits/ 작성 코드 접근 방법 string 형으로 변환 후 1을 count class Solution: def hammingWeight(self, n: int) -> int: return(bin(n).count("1")) str(n)으로 설정하니 00000000000000000000000000001011 -> 11 으로 변환되었음,n 자체는 10진수 bin() 함수를 이용하여 10진수를 2진수로 변환 추가 코드 비트 연산을 이용한 정석적인 풀이 class Solution { public: int hammingWeight(uint32_t n) { int count = 0; while (n .. 2022. 5. 24. [LeetCode] 1523 | Count Odd Numbers in an Interval Range 1523 | Count Odd Numbers in an Interval Range https://leetcode.com/problems/count-odd-numbers-in-an-interval-range/ 작성 코드 class Solution { public: int countOdds(int low, int high) { int end; end = (low % 2 == 1) + (high % 2 == 1); if (end == 0) { return (high - low) / 2; } else if (end == 1) { return (high - low + 1) / 2; } else { return (high - low + 2) / 2; } } }; 이상 코드 class Solution { public.. 2022. 5. 19. [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. [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. [LeetCode] 35 | Search Insert Position 35 | Search Insert Position https://leetcode.com/problems/search-insert-position/ 작성 코드 class Solution: def searchInsert(self, nums: List[int], target: int) -> int: for idx, value in enumerate(nums): if value >= target: return idx return len(nums) nums 를 돌면서 taget 값보다 value 값이 클 때가 삽입할 경우이므로 return 만약 for문을 돌아도 return이 안 됐다면 제일 마지막에 삽입해야하는 경우이므로 len(nums) return 이상 코드 이진 탐색 구현 class Solution: de.. 2022. 4. 8. 이전 1 2 3 4 다음 반응형