공부/코딩테스트

[프로그래머스] 자연수 뒤집어 배열로 만들기, 정수 내림차순으로 배치하기

ghhong 2021. 1. 5. 15:04

자연수 뒤집어 배열로 만들기 문제

나의 답 : 

def solution(n):
    n = str(n)
    l=len(n)
    answer = []
    for i in range(l):
        answer.append(int(n[l-i-1]))
    return answer

 

다른 사람의 답 : 

def digit_reverse(n):
    return list(map(int, reversed(str(n))))

 

정수 내림차순으로 배치하기

나의 답 :

def solution(n):
    n=sorted(str(n))
    n.reverse()
    n=''.join(n)
    return int(n)

 

다른 사람의 답(병합정렬) :

def merge(left, right):
    result = []
    while len(left) > 0 or len(right) > 0:
        if len(left) > 0 and len(right) > 0:
            if left[0] >= right[0]:
                result.append(left[0])
                left = left[1:]
            else:
                result.append(right[0])
                right = right[1:]
        elif len(left) > 0:
            result.append(left[0])
            left = left[1:]
        elif len(right) > 0:
            result.append(right[0])
            right = right[1:]
    return result

def mergeSort(arr):
    if len(arr) <= 1:
        return arr

    mid = len(arr) // 2
    left = arr[:mid]
    right = arr[mid:]

    left = mergeSort(left)
    right = mergeSort(right)

    return merge(left, right)

def solution(n):
    arr = list(str(n))
    n = int(''.join(mergeSort(arr)))
    return n