NIRVANA
[level 1] 정수 내림차순으로 배치하기 본문
문제
함수 solution은 정수 n을 매개변수로 입력받습니다. n의 각 자릿수를 큰것부터 작은 순으로 정렬한 새로운 정수를 리턴해주세요. 예를들어 n이 118372면 873211을 리턴하면 됩니다.
문제 풀이 접근법1
1) 정수 n 입력 받기
2) 정수를 n을 형변환 및 각 자릿수를 list의 원소로 입력 받기
3) sort(reverse=True)를 사용하여 각 리스트 원소를 내림차순 정렬
4) join()를 사용하여 리스트를 문자열로 형변환
5) 문자열을 int형으로 형변환
def solution(n):
answer = 0
arr=''
number = []
for i in str(n):
number.append(i)
number.sort(reverse=True)
arr = ''.join(number)
answer = int(arr)
return answer
연습 겸 내림차순을 직접 구현하는 방법으로도 다시 풀어봐야겠다
처음에 map()로 str형에서 다시 int형으로 변환해야지 sort()를 쓸 수 있을 줄 알았는데
chr형이어도 사용할 수 있어서 놀랐던..
정렬 알고리즘은 왜 다시 볼 때 마다 새로운 느낌일까...??
https://life-of-panda.tistory.com/10
문제 분들 풀이
def solution(n):
ls = list(str(n))
ls.sort(reverse = True)
return int("".join(ls))
바로 list로 바꿀 수 있다니!!
다음부터는 for문 사용하지 않고 바로 str → list로 바꿔야겠다~!
'Coding test(Python3) > Programmers' 카테고리의 다른 글
[level 1] 두 정수 사이의 합 (0) | 2023.07.10 |
---|---|
[level 1] 하샤드 수 (0) | 2023.07.09 |
[level 1] 문자열을 정수로 바꾸기 (0) | 2023.07.07 |
[level 1] 정수 제곱근 판별 (0) | 2023.07.07 |
[level 1] 자연수 뒤집어 배열로 만들기 (0) | 2023.07.07 |