티스토리 뷰
728x90
반응형
문제
https://programmers.co.kr/learn/courses/30/lessons/42746?language=python3
코드
from itertools import permutations
def solution(numbers):
answer = ''
permution = list(permutations(numbers, len(numbers)))
list_permution = []
for i in permution:
list_permution.append(''.join(map(str,i)))
answer = max(list_permution)
return answer
순열로 풀면 시간초과가 난다..
def solution(numbers):
numbers = list(map(str, numbers))
numbers.sort(key=lambda x: x*3, reverse=True)
return str(int(''.join(numbers)))
['6','10','2'] => ['666','101010','222']
문자열 정렬은 인덱스 맨 앞에값에 아스키값을 비교해 정렬을 해준다고 한다 (같을경우 다음 인덱스도 비교)
reverse=True 이므로 ['6','2','10']으로 정렬 된다.
numbers 안이 str인데 int로 바꿨다가 다시 str로 바꿔주는 이유는 '00'이 겹치는 경우를 없애줄려고 해준다.
람다에 대해서 공부해야겠다고 느꼇다.
반응형
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] Level2, 스킬트리 (Python) (0) | 2021.06.04 |
---|---|
[프로그래머스] Level2, 다리를 지나는 트럭 (Python) (0) | 2021.06.03 |
[프로그래머스] Level2, 124 나라의 숫자 (Python) (1) | 2021.06.02 |
[프로그래머스] Level2, 소수 찾기 (Python) (0) | 2021.05.08 |
[프로그래머스] Level2, 카펫 (Python) (0) | 2021.05.06 |
댓글