선택 정렬을 이용한 문제
두 번째 for문에서 선택한 값을 for문 밖에서 접근해야 하므로, 값 자체가 아닌 인덱스를 변수로 삼는 것이 핵심이다.
max = num[j]가 아닌 max = j로 선언 후, num[max]로 접근해야 한다.
# 소트인사이드
# 첫째 줄에 정렬하려고 하는 수 N이 주어진다. N은 1,000,000,000보다 작거나 같은 자연수이다.
# 첫째 줄에 자리수를 내림차순으로 정렬한 수를 출력한다.
n = input()
num = []
for i in range(len(n)):
num.append(int(n[i]))
for i in range(len(n)):
max = i
for j in range(i + 1, len(n)):
if num[j] > num[max]:
max = j
if num[i] < num[max]:
tmp = num[i]
num[i] = num[max]
num[max] = tmp
for i in range(len(n)):
print(num[i], end='')
'Code > Python' 카테고리의 다른 글
[Python] 백준 11004번 K번째 수 (0) | 2023.09.29 |
---|---|
[Python] 백준 11399번 ATM (0) | 2023.09.28 |
[Python] 백준 1377번 버블 소트 (0) | 2023.09.28 |
[Python] 백준 2750번 수 정렬하기 (0) | 2023.09.28 |
[Python] 백준 11286번 절댓값 힙 (0) | 2023.09.27 |