NIRVANA

[level 1] 정수 내림차순으로 배치하기 본문

Coding test(Python3)/Programmers

[level 1] 정수 내림차순으로 배치하기

녜잉 2023. 7. 9. 22:14

 

 

 

문제

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

 

문제 풀이 접근법1

1) 정수 n 입력 받기

2) 정수를 n을 형변환 및 각 자릿수를 list의 원소로 입력 받기

3) sort(reverse=True)를 사용하여 각 리스트 원소를 내림차순 정렬

4) join()를 사용하여 리스트를 문자열로 형변환

5) 문자열을 int형으로 형변환

def solution(n):
    answer = 0
    arr=''
    number = []
    
    for i in str(n):
        number.append(i)

    number.sort(reverse=True)
    arr = ''.join(number)

    answer = int(arr)

    return answer

연습 겸 내림차순을 직접 구현하는 방법으로도 다시 풀어봐야겠다

처음에 map()로 str형에서 다시 int형으로 변환해야지 sort()를 쓸 수 있을 줄 알았는데 

chr형이어도 사용할 수 있어서 놀랐던..

정렬 알고리즘은 왜 다시 볼 때 마다 새로운 느낌일까...??

https://life-of-panda.tistory.com/10

 

[알고리즘] 파이썬으로 정렬 알고리즘 구현하기

파이썬으로 구현한 선택 정렬, 버블 정렬, 삽입 정렬, 병합 정렬, 쉘 정렬입니다. 1. 선택 정렬(Selection Sort) 오름차순 arr = [1, 5, 3, 4, 2, 88, 4, 7, -1, 0] n = len(arr) for i in range(0, n-1): least = i for j in range (i

life-of-panda.tistory.com

 

 


 

문제 분들 풀이

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

바로 list로 바꿀 수 있다니!!

다음부터는 for문 사용하지 않고 바로 str → list로 바꿔야겠다~!