강의
정렬을 사용할 때에는 제한 조건과 시간 복잡도에 주의해야 합니다.
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)
'데브코스 TIL > 자료구조, 알고리즘' 카테고리의 다른 글
Step 4: 탐욕법(Greedy) 대표 문제 풀이: 큰 수 만들기 (0) | 2023.10.19 |
---|---|
Step 2: 탐욕법(Greedy) 대표 문제 풀이: 체육복 (0) | 2023.10.19 |
Step 1: 해시(Hash) 대표 문제 풀이: 완주하지 못한 선수 (0) | 2023.10.19 |
문제 풀이 (1) | 2023.10.18 |
22강/23강: 힙(Heaps) (1) / (2) (0) | 2023.10.18 |