MyPrograming
프로그래머스-파이썬 (정수 내림차순으로 배치하기) 본문
반응형
Q. 함수 solution은 정수 n을 매개변수로 입력받습니다. n의 각 자릿수를 큰것부터 작은 순으로 정렬한 새로운 정수를 리턴해주세요. 예를들어 n이 118372면 873211을 리턴하면 됩니다.
<제한사항>
- n은 1이상 8000000000 이하인 자연수입니다.
<입출력 예시>
<내 풀이>
def solution(n):
answer = ""
str_n = str(n) # n을 문자열로 저장
str_n_list = list(str_n) # 문자열 n을 하나씩 쪼개진 리스트로 저장
for i in range(len(str_n_list)):
str_n_list[i] = int(str_n_list[i]) #문자열로 쪼개진 요소들을 int로 변환
str_n_list.sort(reverse=True) # int로 변환된 요소들을 내림차순으로 정렬
for i in range(len(str_n_list)): #내림차순으로 정렬된 요소들을 하나의 숫자로 만들기 위해서 다시 문자열로 변환시킨 요소로 answer에 더해줌
answer += str(str_n_list[i])
return int(answer)
내장함수에 많이 약해서 상당히 원초적인 방법으로 해결했다.
<다른사람의 풀이>
def solution(n):
ls = list(str(n))
ls.sort(reverse = True)
return int("".join(ls))
코드를 축약하는 방법을 고민해보면서 진행해야겠다는 것을 느꼈다.
join 함수도 알고있었는데 아쉽다.
반응형
'Python > 알고리즘' 카테고리의 다른 글
프로그래머스-파이썬 (x만큼 간격이 있는 n개의 숫자) (0) | 2020.04.29 |
---|---|
프로그래머스-파이썬 (자연수 뒤집어 배열로 만들기) (0) | 2020.04.29 |
프로그래머스-파이썬 (정수 제곱근 판별) (0) | 2020.04.23 |
프로그래머스-파이썬 (자릿수 더하기) (0) | 2020.04.22 |
프로그래머스-파이썬 (최대공약수와 최소공배수) (0) | 2020.04.20 |