항해99-TIL-파이썬-가장큰수

장산·2022년 5월 26일
0

코딩테스트

목록 보기
2/2
def merge_sort(arr):
    if len(arr) < 2:
        return arr

    mid = len(arr) // 2
    low_arr = merge_sort(arr[:mid])
    high_arr = merge_sort(arr[mid:])

    merged_arr = []
    l = h = 0
    while l < len(low_arr) and h < len(high_arr):
        if int(str(low_arr[l]) + str(high_arr[h])) >= int(str(high_arr[h]) + str(low_arr[l])):
            merged_arr.append(low_arr[l])
            l += 1
        else:
            merged_arr.append(high_arr[h])
            h += 1
    merged_arr += low_arr[l:]
    merged_arr += high_arr[h:]
    return merged_arr


print(merge_sort([3,30,34,5,9]))
print()
result1= "".join(map(str,merge_sort([3,30,34,5,9])))
print(result1)

Input=[3,30,34,5,9]
output=[9534330]

두개의 인덱스를 앞뒤로 더해서 비교한다
모든 값이 00일때,즉'00'을 처리하기위해 int로 변환한 뒤,다시 str로 변환한다.

profile
신입 개발자

0개의 댓글