[정렬] 가장 큰 수 (Level 2)

정은경·2020년 4월 18일
0

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

profile
#의식의흐름 #순간순간 #생각의스냅샷

0개의 댓글