Algorithm/LeetCode24 [LeetCode] 695 | Max Area of Island 695 | Max Area of Island https://leetcode.com/problems/max-area-of-island/ 작성 코드 접근 방법 x축, y축을 돌며 1인 경우에 dfs 함수 호출 dfs 함수에서 해당 요소의 상하좌우 값 탐색 상하좌우 다 더한 값을 return class Solution: def maxAreaOfIsland(self, grid: List[List[int]]) -> int: def dfs(x, y, a): # If over the index, finish if x = len(grid) or y = len(grid[0]) or grid[x][y] == 0: return 0 # assigned a value of 0, if visi.. 2022. 3. 17. [LeetCode] 1822 | Sign of the Product of an Array 1822 | Sign of the Product of an Array https://leetcode.com/problems/sign-of-the-product-of-an-array/ 작성 코드 class Solution: def arraySign(self, nums: List[int]) -> int: nums.sort() for idx, num in enumerate(nums): if num == 0: return 0 if num > 0: if idx % 2 == 0: return 1 else: return -1 return -1 접근 방법 sort 한 후 제일 처음에 나오는 양수 값의 인덱스 짝/홀에 따라 부호가 갈리지 않을까? 풀이 0이 하나라도 있으면 곱은 0이 되기 때문에 0 return num의.. 2022. 3. 15. [LeetCode] 191 | Number of 1 Bits 191 | Number of 1 Bits https://leetcode.com/problems/number-of-1-bits/ 작성 코드 class Solution: def hammingWeight(self, n: int) -> int: return(bin(n).count("1")) bin 을 통해 n 을 문자열로 변환하여 "1" count bin(n) >>> 1011 bin() - 10진수 숫자를 이진수 문자열로 바꾸는 함수 bin(n) 을 통해 앞의 0은 절삭됨 이상 코드 class Solution: def hammingWeight(self, n: int) -> int: num_of_1s = 0 for _ in range(32): num_of_1s += (n & 1) n = n >> 1 return .. 2022. 3. 10. [LeetCode] 14 | Longest Common Prefix 14 | Longest Common Prefix https://leetcode.com/problems/longest-common-prefix/ 작성 코드 class Solution: def longestCommonPrefix(self, strs: List[str]) -> str: strs.sort(key=len) prefixes = [strs[0][:i] for i in range(len(strs[0]), 0, -1)] for prefix in prefixes: match = [str for str in strs if str[:len(prefix)] == prefix] if len(match) == len(strs): return prefix return "" prefixes 에는 가장 짧은 문자열의 모.. 2022. 2. 22. [LeetCode] 561 | Array Partition I 561 | Array Partition I https://leetcode.com/problems/array-partition-i/ 작성 코드 class Solution: def arrayPairSum(self, nums: List[int]) -> int: nums.sort() answer = 0 for i in range(0, len(nums), 2): answer += nums[i] return answer 이상 코드 class Solution: def arrayPairSum(self, nums: List[int]) -> int: return sum(sorted(nums)[::2]) 2022. 2. 17. [LeetCode] 13 | Roman to Integer 13 | Roman to Integer https://leetcode.com/problems/roman-to-integer/ 작성 코드 class Solution: def romanToInt(self, s: str) -> int: sum = 0 s = list(s) roman_dict = {'I': 1, 'V': 5, 'X': 10, 'L': 50, 'C': 100, 'D': 500, 'M': 1000} while s: if len(s) > 1 and roman_dict[s[-1]] > roman_dict[s[-2]]: sum += roman_dict[s.pop()] - roman_dict[s.pop()] else: sum += roman_dict[s.pop()] return sum 2022. 1. 28. 이전 1 2 3 4 다음 반응형