-
프로그래머스 가장 큰 수코딩테스트 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
'코딩테스트' 카테고리의 다른 글
프로그래머스 카펫 (0) 2021.11.18 프로그래머스 모의고사 (1) 2021.11.15 프로그래머스 K번째수 (0) 2021.11.11 프로그래머스 이중우선순위큐 (0) 2021.11.11 프로그래머스 더 맵게 (0) 2021.11.09