Notice
Recent Posts
Recent Comments
Link
«   2025/03   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
Tags
more
Archives
Today
Total
관리 메뉴

MyPrograming

프로그래머스-파이썬 (정수 내림차순으로 배치하기) 본문

Python/알고리즘

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

SeongWon 2020. 4. 28. 20:39
반응형

Q. 함수 solution은 정수 n을 매개변수로 입력받습니다. n의 각 자릿수를 큰것부터 작은 순으로 정렬한 새로운 정수를 리턴해주세요. 예를들어 n이 118372면 873211을 리턴하면 됩니다.

 

<제한사항>

  • n은 1이상 8000000000 이하인 자연수입니다.

<입출력 예시>

 


<내 풀이>

def solution(n):
    answer = ""
    str_n = str(n) # n을 문자열로 저장
    str_n_list = list(str_n) # 문자열 n을 하나씩 쪼개진 리스트로 저장
    
    for i in range(len(str_n_list)):
        str_n_list[i] = int(str_n_list[i]) #문자열로 쪼개진 요소들을 int로 변환
        
    str_n_list.sort(reverse=True) # int로 변환된 요소들을 내림차순으로 정렬
    
    for i in range(len(str_n_list)): #내림차순으로 정렬된 요소들을 하나의 숫자로 만들기 위해서 다시 문자열로 변환시킨 요소로 answer에 더해줌
        answer += str(str_n_list[i])
    
    return int(answer)

내장함수에 많이 약해서 상당히 원초적인 방법으로 해결했다.

 

 

<다른사람의 풀이>

def solution(n):
    ls = list(str(n))
    ls.sort(reverse = True)
    return int("".join(ls))

 

코드를 축약하는 방법을 고민해보면서 진행해야겠다는 것을 느꼈다.

join 함수도 알고있었는데 아쉽다.

 

반응형