이 기사에서는 주어진 숫자 목록에서 가능한 가장 큰 숫자를 찾는 방법을 배울 것입니다. 우리는 문제를 해결하기 위해 두 가지 다른 방법을 보게 될 것입니다. 문제를 해결하려면 아래 단계를 따르세요.
- 순열 방법을 위한 itertools 모듈을 가져옵니다.
- 숫자와 빈 목록으로 목록을 초기화합니다.
- 목록의 순열을 반복합니다.
- 모든 조합을 결합하고 결과를 빈 목록에 추가합니다.
- max 메소드와 키를 int로 사용하여 결과에서 최대 수를 찾습니다.
- 문자열을 정수로 변환하여 출력합니다.
예시
코드를 봅시다.
# importing the module import itertools # initializing the list numbers = [45, 35, 138, 43, 67] # result result = [] # permutations for permutation in itertools.permutations(str(number) for number in numbers): result.append(''.join(permutation)) # finding max maximum = max(result, key=int) # printing the max print(int(maximum))
위의 코드를 실행하면 다음과 같은 결과를 얻을 수 있습니다.
출력
67454335138
문제를 해결하는 다른 방법을 살펴보겠습니다. 우리는 문제를 해결하기 위해 기능을 정렬합니다. 아래 단계에 따라 코드를 작성하세요.
- 목록을 정렬된 함수에 전달합니다.
- 두 개의 인수를 허용하는 get_key라는 함수를 작성하세요.
- str(first) + str(second)> str(second) + str(first) else 1이면 -1을 반환합니다.
- 조인 방법을 사용하여 요소 목록을 조인합니다.
- 정수로 변환하여 결과를 출력합니다.
함수를 키로 사용하기 때문에 functools에서 cmp_to_key 메소드를 사용하여 키로 변환해야 합니다. 코드를 봅시다.
예시
from functools import cmp_to_key # initializing the list numbers = [45, 35, 138, 43, 67] def get_key(first, second): if str(first) + str(second) > str(second) + str(first): return -1 return 1 # getting the result result = sorted(numbers, key=cmp_to_key(get_key)) # joining the result result = "".join(str(integer) for integer in result) # printing the result print(int(result))
위의 코드를 실행하면 다음과 같은 결과를 얻을 수 있습니다.
출력
67454335138
결론
튜토리얼에서 질문이 있는 경우 댓글 섹션에 언급하세요.