데브코스 TIL/자료구조, 알고리즘
Step 3: 정렬(Sort) 대표 문제 풀이: 가장 큰 수
예니ㅣ
2023. 10. 19. 15:06
강의
정렬을 사용할 때에는 제한 조건과 시간 복잡도에 주의해야 합니다.
Step 3-3: 풀어서 내 것으로 만들자! 가장 큰 수
⭐ 직관적 풀이 : 새로운 정렬 기준을 생성하여 푸는 방법!
from functools import cmp_to_key
def custom(a, b):
if a + b > b + a:
return -1
elif a + b < b + a:
return 1
else:
return 0
def solution(numbers):
numbers = list(map(str, numbers))
sort_numbers = sorted(numbers,
key = cmp_to_key(custom))
if len(sort_numbers) == sort_numbers.count("0"):
sort_numbers = ["0"]
ans = "".join(sort_numbers)
return ans
⭐ 힌트 풀이 : numbers의 원소의 길이가 4자리수 이하인 것을 이용하는 방법!
def solution(numbers):
numbers = [str(x) for x in numbers]
numbers.sort(key = lambda x: (x*4)[:4], reverse = True)
if numbers[0] == 0:
return = "0"
return "".join(numbers)