첫시도.
from itertools import permutations
def solution(numbers):
answer = ''
a = list(map(str, numbers))
b = permutations(a, len(numbers))
max_n = 0
for i in b:
c = ''.join(i)
if max_n < int(c):
max_n = int(c)
answer = str(max_n)
return answer
테스트 케이스 몇개를 제외하곤 전부 시간초과가 나버린 케이스 (예상은 했지만 더 좋은 방법이 생각나지 않아 그냥 풀어봤다.)
다른 풀이(통과 코드)
def solution(numbers):
answer = ''
num = list(map(str, numbers))
num.sort(key = lambda x : x*3, reverse=True)
answer = ''.join(num)
return str(int(answer))
문자열로 이루어진 리스트로 치환해주고 람다식을 사용한 풀이
numbers 원소는 0이상 1000이하 이기 때문에 3번 반복해준다. (1의 자리 숫자면 자리수를 999까지 맞춰주기 위함)
str타입의 정렬은 아스키 코드로 비교하기 때문에 해당 문자의 가장 앞부터 비교 후 정렬하게 된다.
방법을 떠올리지 못해 힌트를 통한 풀이..
'Programmers' 카테고리의 다른 글
[프로그래머스 / 파이썬 풀이] 아이템 줍기 (0) | 2023.01.13 |
---|---|
[프로그래머스 / 파이썬 풀이] 전력망을 둘로 나누기 (0) | 2023.01.12 |
[프로그래머스 / 파이썬 풀이] 가장 먼 노드 (0) | 2023.01.10 |
[프로그래머스 / 파이썬 풀이] 네트워크 (0) | 2023.01.09 |
[프로그래머스 / 파이썬 풀이] 게임 맵 최단거리 (0) | 2023.01.09 |