이 문제를 해결하려면 주어진 정사각 행렬의 대각선을 출력하는 프로그램이나 함수를 작성해야합니다. 그러나 솔루션 소스 코드의 행과 열을 바꾸면 대신 행렬의 반 대각선을 반환하는 프로그램이나 함수가되어야합니다. 자세한 내용을 읽어보십시오 ...
규칙
- 솔루션의 소스 코드는 선택한 표준 개행 (줄 바꿈, 캐리지 리턴 또는 둘의 조합)으로 구분 된 2D 문자 그리드로 간주됩니다.
소스 코드의 줄은 이전 줄보다 길 수 없습니다. 유효한 레이아웃의 예는 다음과 같습니다.
### ### ###
######## ####### ### ### #
다음은 유효하지 않은 레이아웃의 예입니다 (세 번째 줄이 두 번째 줄보다 길기 때문에).
###### #### ##### ###
두 솔루션은 서로의 전치가되어야합니다. 즉, 행과 열을 교환하여 다른 솔루션을 가져와야합니다. 유효한 두 쌍은 다음과 같습니다.
abc def ghi
adg beh cfi
과
print 10 (~^_^)~ foo bar !
p(fb! r~oa i^or n_ t^ ) 1~ 0
공백은 다른 문자와 같이 취급됩니다. 특히, 후행 공백은 조옮김에서 후행 공백이 아닐 수 있으므로 중요합니다.
각 솔루션은 한 자리 정수의 비어 있지 않은 제곱 행렬을 입력으로 사용하는 프로그램 또는 함수 여야합니다. 한 솔루션은 행렬의 모든 대각선 목록을 출력하고 다른 솔루션은 모든 대각 대각선 목록을 출력해야합니다. 합리적이고 명확한 입력 및 출력 형식을 사용할 수 있지만 두 솔루션간에 동일해야합니다 (두 기능 또는 두 프로그램 모두에 해당해야 함을 의미 함).
- 각 대각선은 왼쪽 위에서 오른쪽 아래로 이어지며 위에서 아래로 정렬되어야합니다.
- 각 대각 대각선은 왼쪽 아래에서 오른쪽 위로 뻗어 있으며 위에서 아래로 주문해야합니다.
채점
가능한 "사각형"인 솔루션을 권장하기 위해 기본 점수는 솔루션의 행 수 또는 열 수 중 더 큰 값입니다. 큰 . 적은 것이 좋습니다. 타이는 줄 바꿈을 계산하지 않고 솔루션 의 문자 수로 구분됩니다 . 다시, 적은 것이 좋습니다. 예:
abcd
efg
h
이것과 전치의 기본 점수는 4 이고 열이 4 개이므로 동점 점수는 8입니다. (새줄이 아닌 문자가 8 개이므로)입니다. 답의 머리글에 두 값을 모두 인용하십시오.
테스트 사례
두 솔루션이 수행하는 실제 작업은 여기서 가장 큰 도전이되어서는 안되지만 다음은 솔루션 테스트에 도움이되는 두 가지 예입니다.
Input:
1 2 3
4 5 6
7 8 9
Diagonals:
3
2 6
1 5 9
4 8
7
Antidiagonals:
1
4 2
7 5 3
8 6
9
Input:
1 0 1 0
0 1 0 1
1 0 1 0
0 1 0 1
Diagonals:
0
1 1
0 0 0
1 1 1 1
0 0 0
1 1
0
Antidiagonals:
1
0 0
1 1 1
0 0 0 0
1 1 1
0 0
1