본문 바로가기
Study/Coding Test

[프로그래머스] 가장 큰 수 Python

by 들숨날숨흡 2023. 8. 9.
728x90

https://school.programmers.co.kr/learn/courses/30/lessons/42746#qna

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

(1) 오답 풀이 - permutations 사용

import itertools

def solution(numbers):
    answer = ''
    str_numbers = []
    find_number = []
    
    for i in range(len(numbers)):
        str_numbers.append(str(numbers[i]))
    
    nPr = itertools.permutations(str_numbers, len(numbers))
    
    for i in list(nPr):
        find_number.append(int("".join(i)))
    
    answer = str(max(find_number))
    
    return answer

permutations 쓰면 쉬울거같아서 써봤는데..

아주 시원하게 시간 초과 나서, 다른 방법을 알아보기로 했다.. ^^

 

(2) 정답 코드 - 정렬

def solution(numbers):
    numbers = list(map(str, numbers))
    numbers.sort(key=lambda x: x*3, reverse=True)
    return str(int(''.join(numbers)))

심지어 코드 줄도 더 짧다! (~ ' 0')~

728x90