문제
원문 보기 (영어)크기 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에 맞게 수정되었습니다. 위의 설명과 제한 조건을 따르세요.