프로그래머스(Programmers) 코딩테스트 연습
Level2 정렬 가증 큰 수 파이썬(Python) 풀이
문제풀이
가장 큰 수를 만드려면, 예를 들어 9와 91이 있을 때 991이 919보다 더 큰 수가 된다. 수의 가장 큰 값이 1000이기 때문에, ‘9’3, ‘91’3을 해서 비교를 하면, ‘999’ > ‘919191’ 이다. 그렇기 때문에 int->str->*3을 하여 비교를 하여 정렬을 하고 해당 숫자들을 원래 숫자로 변경하여 return 해준다.
- 배열의 값들을 str type으로 변경해준뒤 *3을 해준다.
- 이후 sorted 함수를 사용하여 정렬한다.(내림차순으로 정렬하기 위해 reverse=True로 설정해준다.)
- 다시 배열의 값들의 길이를 1/4로 나누어 slicing해준다.
- 해당 배열들을 ‘‘로 join해준다.
- return answer
코드
def solution(numbers):
if sum(numbers)==0:
return '0'
numbers = sorted([str(number)*3 for number in numbers],reverse=True)
answer = ''.join([numbers[i][:int(len(numbers[i])/4)] for i in range(len(numbers))])
return answer
if __name__ == "__main__":
numbers = [6,2,10]
print(solution(numbers))
댓글남기기