(python)프로그래머스-가장 큰 수

DongDong·2023년 10월 20일
0

알고리즘 문제풀이

목록 보기
15/20
post-thumbnail

프로그래머스-가장 큰 수

문제


풀이

처음엔 문자열로 변환 후 정렬하면 성공할 줄 알았다..
그러나 예를 들어 '30','3' 이 있을 때 정렬을 하면 내가 원하는 '330'이 아닌 '303'으로 정렬되어 틀린 답이 나오게 되었다. ㅠ
원하는 방식으로 정렬하기 위해서는 문자열을 반복한 후 자릿 수를 맞춰서 정렬하는 방식으로 정렬해야한다.
30303030[:4]->3030 과 3333[:4]->3333을 정렬하면 3이 먼저 오기 때문에 제대로 정렬이 된다!
추가로 원소가 0만 있을 경우도 고려해주어 00일때 ->0으로 출력되게 해주면 정답이다.

def solution(numbers):
    answer = ''
    s=[str(i) for i in numbers]
    s.sort(reverse=True, key=lambda x:(x*4)[:4])
    answer=''.join(s)
    if answer[0]=='0':
        return '0'
    return answer

0개의 댓글