알고리즘
[CodeWars] 7Kyu : Descending Order
또롱또
2024. 12. 6. 04:33
728x90
https://www.codewars.com/kata/5467e4d82edf8bbf40000155/train/python
Codewars - Achieve mastery through coding practice and developer mentorship
A coding practice website for all programming levels – Join a community of over 3 million developers and improve your coding skills in over 55 programming languages!
www.codewars.com
7kyu 문제로, 주어지는 value를 큰수부터 차례대로 나열하면 된다.
def descending_order(num):
arr = list(str(num))
arr.sort(reverse=True)
arr = ''.join(arr)
return int(arr)
들어온 숫자를 배열로 만들은 다음에 sort로 뒤집고 다시 문자열로 바꾼후, 숫자로 변환해서 내보냈다.
챗GPT한테 어떠냐 물어보니, arr을 이렇게 다시 정의하는게 좋지 않다고 한다.
챗GPT는 아래 답을 줬다. 훨씬 간결하다.
def descending_order(num):
return int(''.join(sorted(str(num), reverse=True)))
일단 sort와 sorted라는 기능에 대해 알아보자면,
sort는 기존 리스트 안에서 정렬을 해주고, sorteds는 새로운 배열을 만들어서 반환해준다.
둘다 내부에 reverse= 로 정렬 순서를 넣어줄 수 있다.
이게 베스트 답변이였고 코드워에서도,
다른 답으론 이런게 있다. 간단하지만, reversed 라는것도 있구나 싶다.
def Descending_Order(num):
s = str(num)
s = list(s)
s = sorted(s)
s = reversed(s)
s = ''.join(s)
return int(s)
728x90