Post

소트인사이트 - 1427

백준 실버 5

소트인사이트

문제

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

입력

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

출력

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

예제 입력 1

1
2143

예제 출력 1

1
4321

예제 입력 2

1
999998999

예제 출력 2

1
999999998

예제 입력 3

1
61423

예제 출력 3

1
64321

예제 입력 4

1
500613009

예제 출력 4

1
965310000

► Idea

  1. Selection sort로 풀자.
    1. 정렬되지 않은 부분에서 최솟값을 찾아, 정렬되지 않은 부분의 시작점(정렬된 부분 바로 뒤)과 스왑 해주는 정렬이다.

► Code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
def selectionSort(li):
  for i in range(0, len(li)):
    min_idx = i
    for j in range(i + 1, len(li)):
      if li[j] > li[min_idx]:
        min_idx = j
    li[i], li[min_idx] = li[min_idx], li[i]


li = list(map(int, input()))
selectionSort(li)

# print a list without brackets
for i in li:
  print(i, end='')

► 시간 소요한 부분

How to print a list without brackets in Python

1. Using for loop

1
2
for i in li:
  print(i, end='')

2. Using the join() method

1
2
string = ' '.join(map(str, my_list))
print(string)
This post is licensed under CC BY 4.0 by the author.