본문 바로가기

dict12

[LeetCode] Single Number python (linear complexity) class Solution: def singleNumber(self, nums: List[int]) -> int: for i in range(len(nums)): if nums.count(nums[i]) == 1: return nums[i] count 활용해서 하긴 했는데 통과 못할 줄 알았는데 통과가 되었다. 역시 하위 93%의 속도 😱 다른 풀이(136ms): dict 사용 class Solution: def singleNumber(self, nums: List[int]) -> int: seen = {} for i in range(len(nums)): if nums[i] not in seen: seen[nums[i]] = 1 else: seen[nums[i]] += 1 for k,v in seen.i.. 2021. 4. 1.
[LeetCode] Roman to Integer 파이썬 (dict, stack, deque) from collections import deque class Solution: def romanToInt(self, s: str) -> int: symbol = {"IV":4, "IX":9, "XL":40, "XC":90, "CD":400, "CM":900} roman = {"I":1,"V":5,"X":10,"L":50,"C":100,"D":500, "M":1000, "IV":4, "IX":9, "XL":40, "XC":90, "CD":400, "CM":900} stack = deque() stack.append((s[0],0)) for i in range(1, len(s)): pattern = stack[-1][0]+s[i] if pattern in symbol: stack.pop() stack.a.. 2021. 3. 26.
[LeetCode] Two Sum 파이썬 (dict, if ~ in) 풀이: class Solution: def twoSum(self, nums, target): seen = {} for i, v in enumerate(nums): remaining = target - v if remaining in seen: return [seen[remaining], i] seen[v] = i return [] enumerate를 사용해서 nums 리스트를 순회한다. target과 nums의 element를 뺀 나머지(remaining)가 seen의 key값으로 존재하는지 확인 존재한다면, seen의 remaininig 키값의 value와 현재 index(i)를 리스트의 원소로 각각 입력후 return seen 이라는 dictionary를 만들어서 value를 key값으로, index.. 2021. 3. 25.