모든 챌린지
보통 0명 해결 정답률 0%

서로 공격하지 않는 두 나이트

각 정사각형 체스판 크기에 대해 두 나이트를 안전하게 놓는 방법의 수를 구하세요.

크기 k가 1부터 n까지인 각 체스판에 대해, k × k 체스판에서 두 나이트가 서로 공격할 수 없는 서로 다른 두 칸의 순서 없는 쌍의 개수를 구하세요. 나이트는 한 축으로 두 칸, 다른 축으로 한 칸 이동할 수 있습니다.

. x . x .
x . . . x
. . K . .
x . . . x
. x . x .

K는 나이트의 위치를, x는 체스판 위에 있을 때 나이트가 이동할 수 있는 위치를 나타냅니다. 두 나이트의 위치를 바꿔도 새로운 배치로 간주하지 않습니다.

two_knights(n)을 구현하세요.

입력

n: 고려할 최대 체스판 크기입니다.

출력

크기 1부터 n까지의 체스판에 대해, 각 크기별로 구한 개수를 순서대로 반환하세요.

제약 조건

1 ≤ n ≤ 10,000. 결과 값은 부호 있는 64비트 정수 범위 내에 있습니다.

예시

예시 1
입력:
n = 3

예상 출력:
expected = [0, 6, 28]
입력:
long long n = 3;

예상 출력:
std::vector<long long> expected = {0, 6, 28};
입력:
long n = 3;

예상 출력:
long[] expected = new long[] {0, 6, 28};

설명

1 × 1 체스판에는 두 나이트를 놓을 수 없습니다. 2 × 2 체스판에는 6개의 쌍이 있으며, 서로 공격하는 경우가 없습니다. 3 × 3 체스판에는 36개의 쌍이 있고, 이 중 8쌍이 서로 공격하므로 28쌍이 남습니다.

예시 2
입력:
n = 1

예상 출력:
expected = [0]
입력:
long long n = 1;

예상 출력:
std::vector<long long> expected = {0};
입력:
long n = 1;

예상 출력:
long[] expected = new long[] {0};

설명

서로 다른 두 칸이 필요하지만, 체스판에 칸이 하나뿐입니다.

참고 자료

이 문제는 CodeUtility에 맞게 수정되었습니다. 위의 설명과 제한 조건을 따르세요.

다른 사람의 풀이 보기

커뮤니티 솔루션

아직 공개된 풀이가 없습니다. 문제를 풀고 첫 풀이를 공유하세요.