문제링크 :https://programmers.co.kr/learn/courses/30/lessons/42746
문제설명
0 또는 양의 정수가 담긴 배열 numbers가 매개변수로 주어질 때, 순서를 재배치하여 만들 수 있는 가장 큰 수를 문자열로 바꾸어 return 하는 solution 함수
알고리즘
1. 문자를 정렬 하는데 정렬하는 기준이 되는 boolen 을 재정의 해준다.
2. 재정의 기준은 문자를 더해서 우선순위에 맞게 return 하면된다.
코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
import functools
#가장 큰수
def cmp(a,b):
t1 = a+b
t2 = b+a
if int(t1)>int(t2):
return 1
elif int(t1)<int(t2):
return -1
else :return 0
def solution(numbers):
answer=''
n=[str(x) for x in numbers]
n = sorted(n,key=functools.cmp_to_key(cmp),reverse=True)
if n[0]=='0' : return '0'
for num in n:
answer+=num
return answer
|
cs |
'파이썬 > 프로그래머스' 카테고리의 다른 글
[python] 프로그래머스 - 소수 찾기 (0) | 2020.08.05 |
---|---|
[python] 프로그래머스 - H-index (0) | 2020.08.05 |
[python] 프로그래머스 - k 번째 수 (0) | 2020.08.05 |
[python] 프로그래머스 - 프린터 (0) | 2020.08.05 |
[python] 프로그래머스 - 다리를 지나는 트럭 (0) | 2020.08.05 |