코드카타_260121

3eo·2026년 1월 21일

1. 문제 :

https://school.programmers.co.kr/learn/courses/30/lessons/12933
함수 solution은 정수 n을 매개변수로 입력받습니다. n의 각 자릿수를 큰것부터 작은 순으로 정렬한 새로운 정수를 리턴해주세요. 예를들어 n이 118372면 873211을 리턴하면 됩니다.

2. 정답 :

3. 오류 :

def solution(n):
	a = str(n)
    내림차순?
    ...
    return answer

각 자릿수를 내림차순으로 바꾸는 함수가 따로 있는건지, 없다면 어떤 방법을 써야하는지 잘 알지 못함


4. 해결 :

def solution(n):
    a = str(n)
    reverse_a = sorted(a, reverse=True)
    new = ''.join(reverse_a)
    answer=int(new)
    return answer

1. 만약 n =118392로 입력했다면 a=="118372"로 바꾸는, 즉
정수를 문자열로 변환하는 과정 필요

  • 정수는 바로 정렬할 수 없기 때문
  • 자릿수 단위로 다루기 위해 문자열로 변환

2. 문자열을 내림차순으로 정렬

sorted(a, reverse=True)

a에 들어있는 문자들을 큰 것부터 작은 것 순서로 정렬한 새로운 리스트 생성

a = "118372"
sorted(a, reverse=True)

# 결과: ['8', '7', '3', '2', '1', '1']

아직 결과는 문자 리스트

3. 리스트의 각 문자들을 하나의 문자열로 결합

new = ''.join(reverse_a)

new = ''.join(reverse_a)
# ''.join(['8', '7', '3', '2', '1', '1'])
new == "873211"

4. 문자열을 정수로 변환

전체흐름

118372
→ "118372"
→ ['8','7','3','2','1','1']
→ "873211"
→ 873211

5. 잘 몰랐던 개념 :

  • sorted()
    항상 리스트 반환

  • join()
    리스트 → 문자열

0개의 댓글