함수 solution은 정수 n을 매개변수로 입력받습니다. n의 각 자릿수를 큰것부터 작은 순으로 정렬한 새로운 정수를 리턴해주세요. 예를들어 n이 118372면 873211을 리턴하면 됩니다.
문제링크
풀이
1. 숫자 > 문자로 변환
2. 반복문으로 빈 리스트에 넣고 큰 순서대로 정렬
3. 빈 문자열 만들고 거기에 추가
4. 다시 문자 > 숫자
def solution(n):
text = str(n) # 숫자 > 문자
array = [] # 빈 리스트 생성
for i in text:
array.append(i) # 리스트에 하나씩 추가
array = sorted(array, reverse = True) # 큰순서대로 정렬
new_text = '' # 빈 문자열 추가
for i in array: # 리스트 돌면서 하나씩 i에 저장
new_text += i # new_text + i = new_text
answer = int(new_text)
return answer
혹시 간단하게 더 줄일 수 있는 방법이 없을까 해서 강의에서 나온 리스트 컴프리헨션을 사용해보기로 함
def solution(n):
array = sorted([i for i in str(n)], reverse = True)
new_text = ''
for i in array:
new_text += i
return int(new_text)
어렵다🤣 쓰는 데 한 세월 걸림
다른사람 풀이
def solution(n) :
return int("".join(sorted(str(n), reverse=True)))
ㄷㄷ 한 줄로 이렇게 쓰는 게 너무 대단하게 느껴진다
"구분자".join(리스트)
" "
쉼표","
없음 ""
예시
n = 118372
sorted_numbers = sorted(str(n), reverse=True) # ['8', '7', '3', '2', '1', '1']
result = "".join(sorted_numbers) # "873211"
final_number = int(result) # 873211
print(final_number)