Skip to content

Commit 3b55fd8

Browse files
authored
Merge pull request #832 from Jay-Mo-99/main
[Jay-Mo-99] Week 04
2 parents 9bd4f49 + 79e797c commit 3b55fd8

File tree

3 files changed

+101
-0
lines changed

3 files changed

+101
-0
lines changed
+27
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
๏ปฟ #ํ•ด์„
2+
#list1 ๊ณผ list2๋Š” ์ด๋ฏธ ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ๋œ ๋ฆฌ์ŠคํŠธ
3+
#๋‘ ๋ฆฌ์ŠคํŠธ์˜ ์ฒซ ๋…ธ๋“œ๊ฐ’์„ ๋น„๊ตํ•ด ๋” ์ž‘์€๊ฐ’์„ ์ฒซ๋ฒˆ์งธ ๋…ธ๋“œ๋กœ ์„ ํƒ
4+
#์ดํ›„ ์„ ํƒ๋œ ๋…ธ๋“œ์˜ nextํฌ์ธํ„ฐ๋ฅผ ์žฌ๊ท€์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•˜์—ฌ ๋…ธ๋“œ ๋ณ‘ํ•ฉ
5+
6+
7+
#Big O
8+
#N: ๋งค๊ฐœ๋ณ€์ˆ˜ n์˜ ํฌ๊ธฐ(๊ณ„๋‹จ ๊ฐฏ์ˆ˜)
9+
10+
#Time Complexity: O(M + N)
11+
#- M: list1์˜ ๊ธธ์ด
12+
#- N: list2์˜ ๊ธธ์ด
13+
#- ๊ฐ ์žฌ๊ท€ ํ˜ธ์ถœ์— ํ•˜๋‚˜์˜ ๋…ธ๋“œ๊ฐ€ ๋‹ค๋ค„์ง„๋‹ค, ๋”ฐ๋ผ์„œ ์ตœ๋Œ€ M+N ๋ฒˆ์˜ ์žฌ๊ท€ํ˜ธ์ถœ ๋ฐœ์ƒ
14+
15+
16+
#Space Complexity: O(M+N)
17+
#- ๋ณ‘ํ•ฉ ๋ฆฌ์ŠคํŠธ์˜ ์ตœ๋Œ€ ๊ธธ์ด M+N์ด๋ฏ€๋กœ, ์Šคํƒ ๊ณต๊ฐ„ ์‚ฌ์šฉ๋„ ์ด์— ๋น„๋ก€ํ•œ๋‹ค.
18+
19+
class Solution(object):
20+
def mergeTwoLists(self, list1, list2):
21+
if list1 and list2: ## ๋‘ ๋ฆฌ์ŠคํŠธ๊ฐ€ ๋ชจ๋‘ ๋น„์–ด์žˆ์ง€ ์•Š์€ ๊ฒฝ์šฐ์—๋งŒ ํ•ด๋‹น
22+
if list1.val > list2.val: # list1์˜ ํ˜„์žฌ ๊ฐ’์ด list2๋ณด๋‹ค ํฌ๋‹ค๋ฉด
23+
list1, list2 = list2, list1 # ๊ฐ’์„ ๊ตํ™˜ํ•˜์—ฌ ํ•ญ์ƒ list1์ด ๋” ์ž‘์€ ๊ฐ’์„ ๊ฐ€์ง
24+
list1.next = self.mergeTwoLists(list1.next, list2) # list1์˜ ๋‹ค์Œ ๋…ธ๋“œ์™€ list2๋กœ ์žฌ๊ท€ ํ˜ธ์ถœ
25+
return list1 or list2 # ๋ฆฌ์ŠคํŠธ๊ฐ€ ํ•˜๋‚˜๋ผ๋„ ๋น„์–ด ์žˆ๋‹ค๋ฉด ๋น„์–ด ์žˆ์ง€ ์•Š์€ ๋ฆฌ์ŠคํŠธ๋ฅผ ๋ฐ˜ํ™˜
26+
27+

โ€Žmissing-number/Jay-Mo-99.py

+42
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
๏ปฟ #ํ•ด์„
2+
#nums๊ฐ€ 0์—์„œ len(nums) ๊นŒ์ง€์˜ ์ˆซ์ž๋ฅผ ํฌํ•จํ•˜๋‚˜ ํ™•์ธํ•˜๊ณ , ์—†๋‹ค๋ฉด ํ•ด๋‹น ์ˆซ์ž๋ฅผ returnํ•œ๋‹ค.
3+
#nums๋ฅผ ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌํ•œ๋‹ค
4+
#nums๊ฐ€ ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋ฉด, nums[i]๋Š” ์ธ๋ฑ์Šค i์™€ ๋™์ผํ•ด์•ผํ•œ๋‹ค. (e.g nums[0] =0, nums[1]=1)
5+
#๋ฐฐ์—ด์˜ ๋งˆ์ง€๋ง‰ ์š”์†Œ(nums(len(num-1))) ์ด len(nums)์™€ ๋™์ผํ•˜์ง€ ์•Š์œผ๋ฉด nums์€ 0~len(nums) ๊นŒ์ง€์˜ ์ˆซ์ž๋ฅผ ๊ฐ€์ง„๋‹ค๋Š” ์กฐ๊ฑด์„ ๋งŒ์กฑ X -> ๋ˆ„๋ฝ๋œ len(nums)๋ฅผ returnํ•œ๋‹ค.
6+
#for loop ๋กœ ๊ฐ ์ˆซ์ž๊ฐ€ ์ธ๋ฑ์Šค์™€ ์ผ์น˜ ์—ฌ๋ถ€ ํ™•์ธ
7+
#์ธ๋ฑ์Šค์™€ ๊ฐ’์ด ์ผ์น˜ํ•˜์ง€ ์•Š๋Š” nums[i]์˜ ์ธ๋ฑ์Šค๋ฅผ returnํ•œ๋‹ค.
8+
9+
10+
#Big O
11+
#N: ๋งค๊ฐœ๋ณ€์ˆ˜ n์˜ ํฌ๊ธฐ(๊ณ„๋‹จ ๊ฐฏ์ˆ˜)
12+
13+
#Time Complexity: O(nlog(n)) = O(nlog(n))+O(1)+O(n)
14+
#- n: nums๋ฐฐ์—ด์˜ ๊ธธ์ด
15+
#- sort(): Timsort๋ฐฉ์‹์ด๊ธฐ์— O(nlog(n))
16+
#-if(nums[len(nums)-1] != len(nums)): ๋‹จ์ผ ์กฐ๊ฑด ๋น„๊ต๋Š” O(1)
17+
#for loop: nums์˜ ๊ธธ์ด์— ๋น„๋ก€ํ•˜๋ฏ€๋กœ O(n)
18+
19+
20+
#Space Complexity: O(1)
21+
#- sort(): nums.sort()๋Š” ์ œ์ž๋ฆฌ ์ •๋ ฌ์ด๊ธฐ์— ์ถ”๊ฐ€ ๊ณต๊ฐ„ ํ•„์š”์น˜ ์•Š์œผ๋ฏ€๋กœ O(1)
22+
23+
class Solution(object):
24+
def missingNumber(self, nums):
25+
"""
26+
:type nums: List[int]
27+
:rtype: int
28+
"""
29+
# Sort the list
30+
nums.sort()
31+
# If the last element of nums doesn't align with the numbers of element in nums, return len(nums)
32+
# For example, nums[0,1] so range is [0:2] but there's no last element of 2 so return 2(len(nums))
33+
if(nums[len(nums)-1] != len(nums)):
34+
return len(nums)
35+
#If each element doesn't match with the number of [0:len(nums)], return the i(index)
36+
for i in range(len(nums)):
37+
if nums[i] != i:
38+
print(nums[i],i)
39+
return i
40+
41+
42+

โ€Žvalid-anagram/Jay-Mo-99.py

+32
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
๏ปฟ #ํ•ด์„
2+
#๋ฌธ์ž์—ด s์˜ ์žฌ๋ฐฐ์น˜๋กœ ๋ฌธ์ž์—ด t๋ฅผ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์œผ๋ฉด anagram์œผ๋กœ return true.
3+
#s์™€ t๋ฅผ list๋กœ ๋ฐ”๊พธ๊ณ  sortํ•˜์—ฌ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌ์‹œํ‚จ๋‹ค, ๋‘˜์ด ๊ฐ™์œผ๋ฉด ๊ฐ™์€ ๋ฌธ์ž๋ฅผ ๊ฐ€์ง„ ๋ฌธ์ž์—ด ๋ฆฌ์ŠคํŠธ์ด๋ฏ€๋กœ return true
4+
5+
#Big O
6+
#N: ์ฃผ์–ด์ง„ ๋ฌธ์ž์—ด s์™€ t์˜ ๊ธธ์ด(N)
7+
8+
#Time Complexity: O(N)
9+
#- ๋ฌธ์ž์—ด์„ list๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ์ž‘์—…: O(N)
10+
#- ์ •๋ ฌ์ž‘์—… : NO(log N)
11+
#- ๋ฆฌ์ŠคํŠธ ๋น„๊ต ์ž‘์—…, s์™€ t์˜ ๊ฐ ๋ฌธ์ž๊ฐ€ ์„œ๋กœ ์ผ์น˜ํ•˜๋Š”์ง€ ์ฒดํฌํ•œ๋‹ค : O(N)
12+
#- ์ตœ์ข…: O(N)
13+
14+
#Space Complexity: O(N)
15+
#- list s์™€ t๋Š” ์ฃผ์–ด์ง„ ๋ฌธ์ž์—ด s์™€ t์— ๊ธฐ๋ฐ˜ํ•˜์—ฌ ์ƒˆ๋กœ์šด list ๊ฐ์ฒด๋กœ ํ• ๋‹น๋œ๋‹ค: O(N)
16+
17+
class Solution(object):
18+
def isAnagram(self, s, t):
19+
"""
20+
:type s: str
21+
:type t: str
22+
:rtype: bool
23+
"""
24+
s = list(s) #Convert string to list
25+
t = list(t)
26+
s.sort() #Sort the list
27+
t.sort()
28+
29+
return s == t #If the s and t are same, return true(anagram)
30+
31+
32+

0 commit comments

Comments
ย (0)