코딩테스트 파이썬/파이썬 프로그래머스 2단계
가장 큰 수
세용용용용
2023. 8. 14. 17:06

코딩테스트 연습 - 가장 큰 수 | 프로그래머스 스쿨 (programmers.co.kr)
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
나의 코드
from itertools import permutations
def solution(numbers):
answer = ''
max_num = 0
for i in permutations(numbers, len(numbers)):
if int(''.join(map(str,i))) > max_num:
max_num = int(''.join(map(str,i)))
answer = str(max_num)
#print(answer)
return answer
solution([3, 30, 34, 5, 9])

타임 아웃....
순열로 풀면 될거같아서 풀어봤지만 시간초과 발생...
수정된 코드
def solution(numbers):
answer = ''
# numbers를 문자열로 바꿔줌
numbers = list(map(str, numbers))
# *3을 해준뒤 정렬을 하자 ,number의 원소가 1000이하 이기 떄문
numbers = sorted(numbers, key=lambda x : x*3, reverse=True)
#정렬해준 리스트를 문자열로 바꾸면 정답..
answer = str(int(''.join(numbers)))
#print(answer)
return answer
solution([6,10,2])