문제 설명
함수 solution은 정수 n을 매개변수로 입력받습니다. n의 각 자릿수를 큰것부터 작은 순으로 정렬한 새로운 정수를 리턴해주세요. 예를들어 n이 118372면 873211을 리턴하면 됩니다.
Bubble Sort solution
def solution(n): a = list(map(int, str(n))) #리스트 만들기 for i in range(len(a)-1) : for j in range(0, len(a)-1-i) : if a[j+1] > a[j]: temp = a[j+1] a[j+1] = a[j] a[j] = temp b = "".join(map(str,a)) return int(b)
런타임 에러가 났다... 그래서 다른 풀이를 봤는데 똑같이 에러가 난다.
자꾸 에러가 나서 다른 방법으로도 시도해봤는데 에러가 나는 사람들이 많았다.ㅜ
다른 풀이를 봤는데 역시 파이썬... 이래서 파이썬 하나보다. 단 몇 줄로 정렬이 가능하다.
another solution
def solution(n): ls = list(str(n)) ls.sort(reverse = True) return int("".join(ls))
이 문제를 보자마자 알고리즘 강의에서 배웠던 정렬 알고리즘들이 떠올랐다. 그때는 이론만 배웠지만 실전에 써먹으니 열심히 들었던 보람이 생겼다.
그러나 그것은 곧 재앙이었으니... 오히려 독이 된 듯 하다. 짧게 풀 수 있는 문제를 장황하게 풀어 써서 오히려 더 복잡해진 것 같다. 덕분에 런타임 에러도 났고ㅜ 역시 파이썬 공부를 먼저 해야하나 고민이 된다.