문제 링크 : https://www.programmers.co.kr/learn/courses/30/lessons/42746
문제 접근(문제 분석 → 풀이 아이디어)
<풀이 참고 >
https://esoongan.tistory.com/103
코드를 풀이할 때 적었던 플로우가 있나요?
입력 numbers 리스트의 원소를 문자열로 형식 변경하기
해당 원소들을 길이를 맞춰 비교한다
key = lambda x : x*2
→ 이 경우 numbers의 원소들은 0≤num≤1,000 제한이 있기 때문에, 숫자의 자리수를 맞춰서 비교하기 위해 *3을 수행한다
출력 형태 맞추기
answer = "".join(numbers) 가 아닌 answer = str(int("".join(numbers)))
을 사용함def solution(numbers):
# 1. number의 같은 길이에 대해서 크기 비교하기
numbers_str = [str(num) for num in numbers ] # 문자열로 변환
numbers = sorted(numbers_str ,key = lambda x: x*3 , reverse = True )
#2. 리스트 원소를 1개의 문자열로 출력 형식 충족하기
# answer = "".join(numbers)
# print(answer , type(answer))
answer = str(int("".join(numbers)))
# print(answer , type(answer))
return answer