1. 문제
2. 나의 풀이
def solution(numbers):
answer = ''
string_numbers = list(map(str, numbers))
string_numbers.sort(key=lambda x: x*3, reverse=True)
answer = ''.join(string_numbers)
return answer
3. 남의 풀이
def solution(numbers):
numbers = list(map(str, numbers))
numbers.sort(key=lambda x: x*3, reverse=True)
# print(numbers)
return str(int(''.join(numbers)))
출처: https://mentha2.tistory.com/9 [행궁동 데이터과학자]
4. 느낀 점
- 숫자문자열의 정렬은 사전식이라는 점을 이용!
- 숫자문자열을 내림차순으로 정렬하면 아래와 같음
['9', '5', '34', '30', '3']
- 30 -> 3이 아니라 3 -> 30으로 바뀌어야 함!!!
- 단,['9', '5', '34', '30', '3']가 ['9', '5', '34', '3', '30']이 되도록 수정하는 절차는 필요함!
- 그렇게 하기 위해서는, 문자열을 곱하기 3해서 대소구분을 비교하는 요령이 필요!
(요개서 곱하기 3인 이유는 문제에서 숫자의 최대자리수가 3자리이기 때문!)
string_numbers.sort(key=lambda x: x*3, reverse=True)
sort 함수의 옵션에 대해서 알아보자!
출처: https://wikidocs.net/16041