diff --git a/contains-duplicate/doh6077.py b/contains-duplicate/doh6077.py new file mode 100644 index 000000000..bc14e47f2 --- /dev/null +++ b/contains-duplicate/doh6077.py @@ -0,0 +1,10 @@ + +# set에 저장하면서 중복 여부 확인하기 +class Solution: + def containsDuplicate(self, nums: list[int]) -> bool: + hashset = set() + for i in nums: + if i in hashset: + return True + hashset.add(i) + return False diff --git a/longest-consecutive-sequence/doh6077.py b/longest-consecutive-sequence/doh6077.py new file mode 100644 index 000000000..75df1d3fe --- /dev/null +++ b/longest-consecutive-sequence/doh6077.py @@ -0,0 +1,34 @@ +# 배열을 정렬하고 포인터를 두개 사용 +class Solution: + def longestConsecutive(self, nums: List[int]) -> int: + if not nums: + return 0 + + # sort the given list + sorted_nums = sorted(nums) + + longest = 1 + curr = 1 + + l, r = 0, 1 + + while r < len(sorted_nums): + # case 1: exactly consecutive (x, x+1) + if sorted_nums[r] == sorted_nums[l] + 1: + curr += 1 + longest = max(longest, curr) + l += 1 + r += 1 + + # case 2: duplicate (x, x) → ignore, move right pointer + elif sorted_nums[r] == sorted_nums[l]: + l += 1 + r += 1 + + # case 3: gap + else: + curr = 1 + l = r + r += 1 + + return longest diff --git a/two-sum/doh6077.py b/two-sum/doh6077.py new file mode 100644 index 000000000..2054ef0de --- /dev/null +++ b/two-sum/doh6077.py @@ -0,0 +1,8 @@ +class Solution: + def twoSum(self, nums: list[int], target: int) -> list[int]: + prevMap = {} # val : index + for i, n in enumerate(nums): + diff = target - n + if diff in prevMap: + return [prevMap[diff], i] + prevMap[n] = i