코딩테스트
프로그래머스 가장 큰 수
박준희
2021. 11. 12. 16:48
https://programmers.co.kr/learn/courses/30/lessons/42746
코딩테스트 연습 - 가장 큰 수
0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내 주세요. 예를 들어, 주어진 정수가 [6, 10, 2]라면 [6102, 6210, 1062, 1026, 2610, 2106]를 만들 수 있고, 이중 가장 큰
programmers.co.kr
def solution(numbers):
answer = ''
tmp = [(str(x)) for x in numbers]
tmp.sort(key=lambda x: x * 3, reverse=True)
for x in tmp:
answer += x
return str(int(answer))
1. 정렬에서 x * 3를 한 이유
모든 값을 3자리 수로 만들어 정렬를 하기 위함
[3, 30, 34, 5, 9] | "9534330" |
위 케이스를 x * 3 없이 정렬할 경우
[9, 5, 34, 30, 3]
으로 정렬이 되어 최대 값을 만들 수 없음
2. 마지막 int -> str로 캐스팅을 한 이유
0, 0, 0, 0 케이스를 대응하기 위함
참고
https://jokerldg.github.io/algorithm/2021/05/06/most-big-number.html
프로그래머스 가장 큰 수 (python 파이썬) - Tech
프로그래머스 가장 큰 수 (python 파이썬) May 06, 2021
jokerldg.github.io