Cherry & Cherish

[Algo] 정렬 문제풀이 2 본문

Algorithm/Learning

[Algo] 정렬 문제풀이 2

앵도라지 2023. 2. 18. 16:39

퀵 정렬

array = [7, 5, 9, 0, 3, 1, 6, 2, 4, 8]
​
def quick_sort(array, start, end):
  if start >= end:
    return
​
  pivot = start
  left = start + 1
  right = end
  
  while left <= right :
    while left <= end and array[left] <= array[pivot]:
      left += 1
​
    while right > start and array[right[ >= array[pivot]:
      right -= 1
​
    if left > right:
      array[right], array[pivot] = array[pivot], array[right]
​
    else :
      array[left], array[right] = array[right], array[left]
​
  quick_sort(array, start, right-1)
  quick_sort(array, right+1, end)
​
quick_sort(array, 0, len(array)-1)
print(array)

프로그래머스 가장 큰 수

def solution(numbers):
    arr = []
    for i in numbers:
        a = str(i)
        arr.append(a)
    arr.sort(key=lambda x: x * 3, reverse=True)
    ans = ''
    for i in range(len(arr)):
        ans += arr[i]
    if int(ans) == 0:
        ans = '0'
    return ans # return str(int(''.join(arr)))

프로그래머스 H-index

def solution(citations):
    citations.sort(reverse=True) 
    n = len(citations) 
    ans = n 
    for h in range(n):
        if citations[h] <= h: 
            ans = h 
            break
    return ans

'Algorithm > Learning' 카테고리의 다른 글

[Algo] 정렬 문제풀이 4  (1) 2023.02.27
[Algo] 정렬 문제풀이 3  (0) 2023.02.22
[Algo] 정렬 문제풀이  (0) 2023.02.17
[Algo] 이분탐색 문제풀이  (0) 2023.02.16
[Algo] bfs 연습  (0) 2023.02.15
Comments