안녕하세요~ 포스팅이 오랜만이네요.
전 오늘 핸드폰 액정이 깨져서 너무 슬프답니다 ㅠㅠ
다들 조심해서 쓰시길...
오늘의 문제는!!
주어진 정수 n의 각 자릿수를 큰수부터 작은 순으로 정렬한 정수를 반환하는 문제입니다.
만약 정수 n이 231 이라면 321 로 바꿔서 반환하면 되겠습니다 ㅎ
먼저! 정수 상태로는 각 자리수를 정렬하는게 불가능하니 list형으로 바꿔보겠습니다.
ls = list(str(n))
--print(ls) => ['2','3','1']--
ls라는 변수에 n의 각 자리수를 리스트로 만들어 넣었습니다.
여기서 정수 n을 먼저 string형태로 변환하지 않을 경우
'int' object is not iterable 이라는 오류가 뜨는데요,
왜냐하면 list() 함수는 반복 가능한(iterable) 인자만 가능하기 때문입니다! -> 문자열, 튜플, 딕셔너리 등등 …
이제 리스트로 만들어 뒀으니 큰 수부터 차례대로 정렬해보겠습니다.
ls.sort(reverse=True)
sort()를 사용해 작은수부터 정렬이 되었으니 reverse를 사용해 역정렬을 했습니다.
여기서 ls를 출력하면 어떻게 될까요? ↓ ↓
['3', '2', '1']
정수를 반환하라고 했으니 일단 모두 합쳐야겠죠~
리스트를 문자열로 합치는 함수인 join()을 사용해 줍니다!
''.join(ls)
공백이나 쉼표 없이 ls를 합쳤습니다.
여기서 잠깐!!!!!!!!
이대로 반환할 경우 "123"이라는 문자열이 되니 전체를 int()로 묶어 반환하면 정말 끝입니당ㅎㅎ
def solution(n):
ls = list(str(n))
ls.sort(reverse=True)
return int(''.join(ls))
오늘따라 말이 너무 많았네요..
말을 줄이고 싶은데 다음 문제는 더 간단하게 설명해보도록 노력하겠습니다!!
봐주셔서 ㄳ
'파이썬 문제 풀기!' 카테고리의 다른 글
두 정수 사이의 합 구하기 (0) | 2023.12.05 |
---|---|
하샤드 수 검사하기 (1) | 2023.10.31 |
정수의 제곱근 판별하기 (2) | 2023.10.27 |
약수의 합 구하기 (1) | 2023.10.26 |
짝수와 홀수 구하기 (0) | 2023.10.26 |