문제
배열을 정렬하는 것은 쉽다. 수가 주어지면, 그 수의 각 자리수를 내림차순으로 정렬해보자.
입력
첫째 줄에 정렬하려고 하는 수 N이 주어진다. N은 1,000,000,000보다 작거나 같은 자연수이다.
출력
첫째 줄에 자리수를 내림차순으로 정렬한 수를 출력한다.
제출한 답안
numbers = list(input())
numbers.sort(reverse=True)
print(''.join(numbers))
풀이
입력 받은 숫자 문자열을 하나씩 분리하여 리스트에 저장한다. 이후 리스트를 내림차순으로 정렬하고, 정렬된 리스트를 다시 문자열로 합쳐 출력한다.
다른 풀이
print(''.join(sorted(input(), reverse=True)))
1. 문자열을 리스트로 바꾸기
파이썬에서 문자열을 리스트로 변환하면, 각 문자가 리스트의 원소가 된다. 이렇게 하면 각 문자를 개별적으로 다룰 수 있다.
list('word')
>>> ['w','o','r','d']
2. 리스트 또는 문자열 정렬하기
파이썬에서 리스트를 정렬할 때 `sort()` 와 `sorted()` 두 가지 방법을 사용할 수 있다. 두 방법 모두 리스트를 정렬하지만 약간의 차이가 있다.
1) sort
`sort()`는 리스트 자체를 정렬한다. 즉, 원본 리스트가 변경된다.
sample_list = [3, 4, 2, 1, 5]
sample_list.sort()
sample_list
>>> [1, 2, 3, 4, 5]
# 내림차순 정렬하기
sample_list.sort(reverse=True)
sample_list
>>> [5, 4, 3, 2, 1]
Note.
- sort()는 리스트에만 사용할 수 있으며, 문자열에는 직접 사용할 수 없다. 문자열을 먼저 리스트로 변환해야만 사용할 수 있다.
# 문자열에서 sort()를 사용할 경우:
'34215'.sort()
>>> AttributeError: 'str' object has no attribute 'sort'
# 리스트에서 sort()를 사용할 경우:
sample_list = list('34215')
sample_list.sort()
sample_list
>>> ['1', '2', '3', '4', '5']
2) sorted
`sorted()`는 새로운 정렬된 리스트를 반환하며, 원본 리스트는 변경되지 않는다.
sample_list = [3, 4, 2, 1, 5]
sample_list = sorted(sample_list)
sample_list
>>> [1, 2, 3, 4, 5]
# 내림차순 정렬하기
sample_list = sorted(sample_list, reverse=True)
sample_list
>>> [5, 4, 3, 2, 1]
Note.
- sorted()는 문자열이나 리스트 모두에서 사용할 수 있으며, 새로운 정렬된 리스트나 문자열을 반환한다. 예를 들어, '34215' 문자열에 sorted()를 사용하면, 각 문자를 개별적으로 비교하여 정렬된 리스트를 반환합니다.
sorted('34215')
>>> ['1', '2', '3', '4', '5']
# 내림차순 정렬하기
sorted('34215', reverse=True)
>>> ['5', '4', '3', '2', '1']
출처
'코딩테스트' 카테고리의 다른 글
[백준 2303번][python] 숫자 게임 (2) | 2024.10.09 |
---|---|
[백준 1476번][python] 날짜 계산 (2) | 2024.10.09 |
[프로그래머스][SQL] 특정 조건을 만족하는 물고기별 수와 최대 길이 구하기, 물고기 종류 별 대어 찾기 (1) | 2024.09.29 |
[프로그래머스][SQL] 특정 물고기 잡은 총 수 구하기, 월별 잡은 물고기 수 구하기, 물고기 종류 별 잡은 수 구하기 (0) | 2024.09.29 |
[프로그래머스][SQL] 가장 큰 물고기 10마리 구하기, 잡은 물고기 중 가장 큰 물고기의 길이 구하기, 한 해에 잡은 물고기 수 구하기 (0) | 2024.09.29 |