https://programmers.co.kr/learn/courses/30/lessons/42746
•
list
와map
함수를 이용해 정수형으로 들어오는 매개변수들을 모두str
형식으로 바꿔주었다.
•str
형식으로 바꾼 변수 하나하나를 3번씩 반복하게*3
을 해주었다.
•str
형식이기 때문에 숫자가 3배가 되는게 아닌 3번 반복됨 그리고 숫자가 크길 원하기 때문에 역순인 내림차순 정렬.
• 마지막으로int
로 바꿔줘서 0반복되는 쓰레기값 없애준 후 다시str
로 변환후 리턴.• 왜
int
를str
형식으로 바꿈? ->int
형식으로 숫자 크기 비교를 하는게 아닌 사전에서 단어가 나오는 순서처럼 크기를 비교해야 하기 때문에.
• 왜 하필이면*3
임? -> 문제 제한 사항의numbers
의 제한값 0이상 1,000이하.
만약 제한값이 0이상 10,000이하 였으면*4
하면 됨.
• 왜str(int())
? -> 문자열인상태 그대로 리턴하면 000이 있을수도 있기때문에 정수로 바꿔서 다 날려준 다음 다시 문자열로 바꾼 후 리턴.
def solution(numbers):
numbers = list(map(str, numbers))
numbers.sort(key = lambda x: x*3, reverse=True)
answer = str(int(''.join(numbers)))
return answer
Programmers / 가장 큰 수