Mohammad S. Anwar가 주최한 주간 챌린지는 개발자들이 두 가지 과제를 해결하여 경쟁하는 우호적인 경쟁입니다. 학습, 공유, 즐거움을 통해 모든 언어와 수준의 개발자의 참여를 장려합니다.
과제 1: 주간 챌린지의 아름다운 배열에서는 개발자가 양의 정수에서 생성된 모든 순열 중에서 아름답게 배열된 순열의 수를 찾도록 초대합니다.
이번 포스팅에서는 과제 1: 아름다운 정리에 대한 논의와 해결책을 제시하고 간략한 결론을 마치겠습니다.
주간 챌린지 300 마감일은 2024년 12월 23일 일요일 23:59(영국 시간)입니다. 편견을 피하려면 대회 후에 이 게시물을 읽어보세요.
양의 정수 $int가 주어졌습니다.
$int에서 구성할 수 있는 아름다운 배열의 수를 반환하는 스크립트를 작성하세요.
인덱스가 1인 n 정수의 순열은 모든 i(1
- 순열[i]는 i로 나눌 수 있습니다.
- i는 순열로 나눌 수 있습니다[i]
주간 챌린지 300, 과제 1: 아름다운 정리
예 1과 2는 주어진 입력에서 예상되는 출력을 나타냅니다.
Input: $n = 2 Output: 2
n = 2이고 (1
순열 (1, 2)는 모든 요소가 첫 번째 조건과 일치하므로 아름다운 배열입니다.
순열(2, 1)도 모든 요소가 첫 번째 또는 두 번째 조건과 일치하므로 아름다운 배열입니다.
Input: $n = 1 Output: 1
Input: $n = 10 Output: 700
from itertools import permutations def generate_permutations(n) iterable = list(range(1, n + 1)) return permutations(iterable) def count_beautiful_arrangements(perms): num_beautiful_arr = 0 for perm in perms: is_beautiful_arr = True for value_index, value in enumerate(perm): if value % (value_index + 1) == 0: continue elif (value_index + 1) % value == 0: continue else: is_beautiful_arr = False break if is_beautiful_arr == True: num_beautiful_arr += 1 return num_beautiful_arr
저의 우아하지 않고 정교하지 않은 솔루션은 generate_permutations와 count_beautiful_arrangements라는 두 가지 함수를 활용합니다.
generate_permutations는 매개변수 n에 대해 1
count_beautiful_permutations는 permutations iterable perms 매개변수에 대해 아름다운 배열 조건과 일치하는 perms의 총 순열 수를 반환합니다.
이번 게시물에서는 작업 1: 아름다운 배열에 대해 논의하고 해결책을 제시했습니다. 내 '우아하지 않고 정교하지 않은' 솔루션은 효과가 있지만 개선의 여지가 상당히 많습니다.
위 내용은 주간 챌린지의 아름다운 배열 작업을 위한 나의 Python 언어 솔루션의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!