From 352700a5edc898d2e6d67344d4dfc9ed06195105 Mon Sep 17 00:00:00 2001 From: Won Joon Thomas Choi <113500771+724thomas@users.noreply.github.com> Date: Mon, 28 Sep 2026 20:49:16 +0900 Subject: [PATCH 1/3] Create 169. Majority Element.py --- .../169. Majority Element.py" | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 "leetcode3/\354\265\234\354\233\220\354\244\200/169. Majority Element.py" diff --git "a/leetcode3/\354\265\234\354\233\220\354\244\200/169. Majority Element.py" "b/leetcode3/\354\265\234\354\233\220\354\244\200/169. Majority Element.py" new file mode 100644 index 00000000..083b6137 --- /dev/null +++ "b/leetcode3/\354\265\234\354\233\220\354\244\200/169. Majority Element.py" @@ -0,0 +1,11 @@ +class Solution: + def majorityElement(self, nums: list[int]) -> int: + n = len(nums) + majority = n/2 + + counter = Counter(nums) + for num, freq in counter.items(): + if freq >= majority: + return num + + return -1 From 261b33ed30db82703fc374d15e5d2ab5d0004ef7 Mon Sep 17 00:00:00 2001 From: Won Joon Thomas Choi <113500771+724thomas@users.noreply.github.com> Date: Tue, 29 Sep 2026 22:18:30 +0900 Subject: [PATCH 2/3] Create 242. Valid Anagram.py --- .../242. Valid Anagram.py" | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 "leetcode3/\354\265\234\354\233\220\354\244\200/242. Valid Anagram.py" diff --git "a/leetcode3/\354\265\234\354\233\220\354\244\200/242. Valid Anagram.py" "b/leetcode3/\354\265\234\354\233\220\354\244\200/242. Valid Anagram.py" new file mode 100644 index 00000000..a9f2ca06 --- /dev/null +++ "b/leetcode3/\354\265\234\354\233\220\354\244\200/242. Valid Anagram.py" @@ -0,0 +1,12 @@ +class Solution: + def isAnagram(self, s: str, t: str) -> bool: + if len(t) != len(s): + return False + + counter1 = Counter(s) + counter2 = Counter(t) + + for char1, freq in counter1.items(): + if counter2[char1] != freq: + return False + return True From 792379916aad17ff037bacbc8b89703b7a104edf Mon Sep 17 00:00:00 2001 From: Won Joon Thomas Choi <113500771+724thomas@users.noreply.github.com> Date: Tue, 29 Sep 2026 22:20:42 +0900 Subject: [PATCH 3/3] Create 413. Arithmetic Slices.py --- .../413. Arithmetic Slices.py" | 40 +++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 "leetcode3/\354\265\234\354\233\220\354\244\200/413. Arithmetic Slices.py" diff --git "a/leetcode3/\354\265\234\354\233\220\354\244\200/413. Arithmetic Slices.py" "b/leetcode3/\354\265\234\354\233\220\354\244\200/413. Arithmetic Slices.py" new file mode 100644 index 00000000..07fdf0e6 --- /dev/null +++ "b/leetcode3/\354\265\234\354\233\220\354\244\200/413. Arithmetic Slices.py" @@ -0,0 +1,40 @@ +# + +''' +1. 아이디어 : +diff가 다를때마다 자른다. +자른 길이를 재귀함수를 통해 경우의 수를 구한다 + +2. 시간복잡도 : + O(n + n) + +3. 자료구조/알고리즘 : +dfs + +''' +class Solution: + def numberOfArithmeticSlices(self, nums: list[int]) -> int: + if len(nums) <3: + return 0 + + @cache + def calc(n): + return n // 3 if n <= 3 else n-2 + calc(n-1) + + ans = 0 + prevs = [nums[0], nums[1]] + diff = nums[1] - nums[0] + + for num in nums[2:]: + if num - prevs[-1] == diff: + prevs.append(num) + + elif num - prevs[-1] != diff: + if len(prevs) >= 3: + ans += calc(len(prevs)) + + diff = num - prevs[-1] + prevs = [prevs[-1], num] + ans += calc(len(prevs)) + return ans +