[백준] 1427. 소트인사이드

nayoon·2021년 7월 16일
0

Algorithm

목록 보기
54/55

문제

배열을 정렬하는 것은 쉽다. 수가 주어지면, 그 수의 각 자리수를 내림차순으로 정렬해보자.

입력

첫째 줄에 정렬하고자하는 수 N이 주어진다. N은 1,000,000,000보다 작거나 같은 자연수이다.

출력

첫째 줄에 자리수를 내림차순으로 정렬한 수를 출력한다.

풀이 방식

알고리즘 분류를 보니 '문자열'과 '정렬'이었다.

파이썬을 이용하면 문자열 처리가 매우 편하다.

하지만 나는 그냥 수로 풀었다. (곧 코딩테스트 언어를 바꿀 예정이라 파이썬의 편안한 문자열 처리에서 벗어나려고 한다...)

  1. 입력받은 수 N을 자리수로 분리해서 list에 넣는다.

  2. list를 정렬한다.

  3. 0으로 초기화한 변수에 list에 들어있는 정렬한 수를 자리수를 증가시키며 더한다.

제출 코드

import sys
input = sys.stdin.readline

n = int(input())
a = list()

# 1번 과정 수행
while n != 0:
    a.append(n % 10)
    n = n // 10

# 2번 과정 수행
a.sort()

# 3번 과정 수행
c = 1
for i in a:
    n += i * c
    c *= 10

print(n)
profile
뚜벅뚜벅 열심히 공부하는 개발자

0개의 댓글