본문 바로가기
코딩공부/프로그래머스 (python)

[프로그래머스] 정수 내림차순으로 배치하기 (Python)

by CodingKwon 2022. 8. 11.

문제 링크 (Level 1)

https://school.programmers.co.kr/learn/courses/30/lessons/12933?language=python3 

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

나의 코드 (Python)

def solution(n):
    answer = 0
    cnt = 1 # 몇의 자리인지를 나타낼 변수
    tmp = []
    
    for s in str(n): # str로 형변환하면 한글자씩 분리가 가능함
        tmp.append(s)
    tmp.sort() # 정렬
    for i in tmp:
        answer += int(i) * cnt # 정렬 마친 수를 재조립 (오름차순이기 때문에, 이 방식으로 내림차순으로 조립가능)
        cnt *= 10
    return answer

 

1. 수를 분해한다 (str로 형 변환하면 분해 가능)

2. 정렬한다 (오름차순으로 정렬함)

3. 재조립한다.

--> 배열에 앞부분부터 꺼내서 재조립합니다. 따라서 오름차순으로 조립이 가능합니다. 이때 자릿수를 나타낼 cnt변수에 10을 곱해주면서 더해주면 내림차순의 답을 구할 수 있습니다.

 

 

댓글