SW/알고리즘

파이썬 : 프로그래머스 : 정수 내림차순으로 배치하기 : 풀이

얇은생각 2019. 9. 29. 07:30
반응형

코드

def solution(n):
    answer = 0
    
    num_list = []
    n_str = str(n)
    
    for i in range(len(n_str)):
        num_list.append(int(n_str[i]))
    
    num_list.sort(reverse=True)
    
    for i in num_list:
        answer = answer*10 + i
    
    return answer

 

 

 

실행 결과

정확성 테스트

테스트 1 통과 (0.06ms, 10.8MB)
테스트 2 통과 (0.06ms, 10.9MB)
테스트 3 통과 (0.07ms, 10.8MB)
테스트 4 통과 (0.06ms, 10.8MB)
테스트 5 통과 (0.06ms, 10.8MB)
테스트 6 통과 (0.06ms, 10.9MB)
테스트 7 통과 (0.06ms, 10.9MB)
테스트 8 통과 (0.07ms, 10.7MB)
테스트 9 통과 (0.06ms, 10.9MB)
테스트 10 통과 (0.06ms, 10.9MB)
테스트 11 통과 (0.06ms, 10.8MB)
테스트 12 통과 (0.07ms, 10.8MB)
테스트 13 통과 (0.07ms, 11MB)
테스트 14 통과 (0.06ms, 10.8MB)
테스트 15 통과 (0.07ms, 10.8MB)
테스트 16 통과 (0.07ms, 10.8MB)

채점 결과

정확성: 100.0

합계: 100.0 / 100.0

 

 

 

총평

우선 파라미터의 값을 문자열로 바꾸어줍니다. 그 다음, 해당 자리수에 접근을 하여, 정수형으로 다시 변경하여 리스트에 담아줍니다. 그 다음, 정렬을 해줍니다. 그러면 해당 값들은 크기 순대로 정렬이 됩니다. 그 다음, 해당 값을 앞에서부터 다시 쌓아줍니다. 저는 for문으로 10씩 곱해주면서 문제를 해결하였습니다. 그러나 다시 문자열로 바꾸어서 값을 붙여준다음, int로 변환하는 방법도 좋을 것 같습니다. 편한 방식으로 문제를 해결하는 것을 추천드립니다.

반응형