File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1- def merge_sort (list ):
2- if len (list ) <= 1 :
3- return list
4-
5- # 분할
6- mid = len (list )// 2
7- leftList = list [:mid ]
8- rightList = list [mid :]
9- leftList = merge_sort (leftList )
10- rightList = merge_sort (rightList )
11-
12- # 정복
13- return merge (leftList , rightList )
14-
15- # 1 4 6 5 <- [1, 4, 5, 6]
16- # 1 4 / 6 5 <- [1, 4] / [ 5, 6]
17- # 1 / 4 / 6 / 5
18-
19- def merge (left , right ):
20- result = []
21-
22- while len (left ) > 0 or len (right ) > 0 :
23- if len (left ) > 0 and len (right ) > 0 :
24- if left [0 ] <= right [0 ]:
25- result .append (left [0 ])
26- left = left [1 :]
27- else :
28- result .append (right [0 ])
29- right = right [1 :]
30- elif len (left ) > 0 :
31- result .extend (left )
32- left = []
33- elif len (right ) > 0 :
34- result .extend (right )
35- right = []
36-
37- return result
1+ def merge_sort (arr ):
2+ if len (arr ) < 2 :
3+ return arr
4+
5+ mid = len (arr ) // 2
6+ low_arr = merge_sort (arr [:mid ])
7+ high_arr = merge_sort (arr [mid :])
8+
9+ merged_arr = []
10+ l = h = 0
11+ while l < len (low_arr ) and h < len (high_arr ):
12+ if low_arr [l ] < high_arr [h ]:
13+ merged_arr .append (low_arr [l ])
14+ l += 1
15+ else :
16+ merged_arr .append (high_arr [h ])
17+ h += 1
18+ merged_arr += low_arr [l :]
19+ merged_arr += high_arr [h :]
20+ return merged_arr
Original file line number Diff line number Diff line change 1+ def merge_sort (arr ):
2+ if len (arr ) <= 1 :
3+ return arr
4+
5+ mid = len (arr ) // 2
6+ low_arr = merge_sort (arr [:mid ])
7+ high_arr = merge_sort (arr [mid :])
8+
9+ merged_arr = []
10+ l = h = 0
11+ while l < len (low_arr ) and h < len (high_arr ):
12+ if low_arr [l ] < high_arr [h ]:
13+ merged_arr .append (low_arr [l ])
14+ l += 1
15+ else :
16+ merged_arr .append (high_arr [h ])
17+ h += 1
18+ merged_arr += low_arr [l :]
19+ merged_arr += high_arr [h :]
20+ return merged_arr
Original file line number Diff line number Diff line change 1+ from collections import deque
2+ class MyStack :
3+ def __init__ (self ):
4+ self .q = deque ()
5+
6+ def push (self , x ):
7+ # 넣을 때마다 재정렬함으로 스택성질을 유지
8+ self .q .append (x )
9+ for _ in range (len (self .q )- 1 ):
10+ self .q .append (self .q .popleft ())
11+
12+ def pop (self ):
13+ return self .q .popleft ()
14+
15+ def top (self ):
16+ return self .q [0 ]
17+
18+ def empty (self ):
19+ return len (self .q ) == 0
You can’t perform that action at this time.
0 commit comments