Skip to content

Commit 89ea753

Browse files
chrisjune최준영[chris][Tech]
andauthored
[chrisjune] week 01 solutions (#1708)
* feat: 1주차 문제풀이 * two sum refactoring --------- Co-authored-by: 최준영[chris][Tech] <[email protected]>
1 parent fd1e31b commit 89ea753

File tree

5 files changed

+62
-0
lines changed

5 files changed

+62
-0
lines changed

contains-duplicate/chrisjune.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
class Solution:
2+
def containsDuplicate(self, nums) -> bool:
3+
dic = {}
4+
for num in nums:
5+
dic[num] = dic.get(num, 0) + 1
6+
for v in dic.values():
7+
if v > 1:
8+
return True
9+
return False

house-robber/chrisjune.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
from typing import List
2+
3+
4+
class Solution:
5+
def rob(self, nums: List[int]) -> int:
6+
if len(nums) <= 1:
7+
return nums[0]
8+
dp = [0] * len(nums)
9+
dp[0], dp[1] = nums[0], max(nums[0], nums[1])
10+
for i in range(2, len(nums)):
11+
dp[i] = max(dp[i - 1], nums[i] + dp[i - 2])
12+
return dp[-1]
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
from typing import List
2+
3+
4+
class Solution:
5+
def longestConsecutive(self, nums: List[int]) -> int:
6+
if len(nums) < 1:
7+
return 0
8+
nums = list(set(nums))
9+
nums.sort()
10+
dp = [0] * len(nums)
11+
dp[0] = 1
12+
for i in range(1, len(nums)):
13+
if nums[i - 1] + 1 == nums[i]:
14+
dp[i] = dp[i - 1] + 1
15+
else:
16+
dp[i] = 1
17+
print(dp)
18+
return max(dp)

top-k-frequent-elements/chrisjune.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
from typing import List
2+
3+
4+
class Solution:
5+
def topKFrequent(self, nums: List[int], k: int) -> List[int]:
6+
dic = {}
7+
for num in nums:
8+
dic[num] = dic.get(num, 0) + 1
9+
l = [(k, v) for k, v in dic.items()]
10+
l.sort(reverse=True, key=lambda x: x[1])
11+
l = [i for i, _ in l]
12+
return l[:k]

two-sum/chrisjune.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
from typing import List
2+
3+
4+
class Solution:
5+
def twoSum(self, nums: List[int], target: int) -> List[int]:
6+
nums_dic = {num: idx for idx, num in enumerate(nums)}
7+
for i in range(len(nums)):
8+
remain = target - nums[i]
9+
exists_idx = nums_dic.get(remain)
10+
if exists_idx and exists_idx != i:
11+
return i, exists_idx

0 commit comments

Comments
 (0)