n개의 A와 2n개의 B가 있는 문자열이 있다고 가정합니다. 각 접두사와 접미사에서 B의 수가 A의 수보다 크거나 같도록 가능한 배열의 수를 찾아야 합니다.
따라서 입력이 n =2와 같으면 2개의 A와 4개의 B가 있으므로 출력은 4가 되므로 가능한 배열은 [BBAABB, BABABB, BBABAB, BABBAB]입니다.
이 문제를 해결하기 위해 다음 단계를 따릅니다. −
- 해결 방법을 정의합니다. n이 소요됩니다.
- n이 1과 같으면
- 1을 반환
- n이 2와 같으면
- 4 반환
- n이 홀수이면
- 찾기((n-1)/2)^2의 바닥 반환
- 그렇지 않으면
- 찾기(n/2의 바닥)^2 반환
예
이해를 돕기 위해 다음 구현을 살펴보겠습니다. −
def solve(n): if n==1: return 1 if n==2: return 4 if n%2 != 0: return solve((n-1)//2)**2 else: return solve(n//2)**2 n = 2 print(solve(n))반환
입력
2
출력
4