문제가 단순한데...생각보다 정답률이 낮은 문제이다.
이유는 모르겄다!!!
풀이 방법은 오랜만에 그림을 첨부하여 설명하겠다!
규칙 1. 길이/2는 한 변의 가운데이다.
규칙 2. 가운데를 기준으로 x축으로 -1씩 당겨지며 한 행에서 더해지는 배열 한 칸의 개수는 +2씩 증가한다.
위의 두 가지 규칙으로 상층부와 하층부를 더하며 가운데는 따로 더해주었다! 숫자는 맨위 맨 아래 가운데를 기준으로 1이며, 다음 덧셈 시작 위치의 순서이다!!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | #include <stdio.h> #include <string.h> int arr[51][51]; int main() { int T; scanf("%d", &T); for (int i = 0; i < T; i++) { int len, total = 0; memset(arr, 0, sizeof(arr)); scanf("%d", &len); for (int a = 0; a < len; a++) { for (int b = 0; b < len; b++) { scanf("%1d", &arr[a][b]); } } int k = 1; for (int a = 0; a < len / 2; a++) { for (int b = 0; b < k; b++) { total += arr[a][len / 2 - a + b]; total += arr[len - 1 - a][len / 2 - a + b]; } k += 2; total += (arr[len / 2][a] + arr[len / 2][len -1 - a]); } printf("#%d %d\n", i + 1, total + arr[len / 2][len / 2]); } return 0; } | cs |
'SW 업무 관련 > SW Expert Academy' 카테고리의 다른 글
2806. N-Queen (0) | 2018.07.22 |
---|---|
1225. [S/W 문제해결 기본] 7일차 - 암호생성기 (0) | 2018.07.22 |
1249. [S/W 문제해결 응용] 4일차 - 보급로 (0) | 2018.07.18 |
1210. [S/W 문제해결 기본] 2일차 - Ladder1 (0) | 2018.07.16 |
1238. [S/W 문제해결 기본] 10일차 - Contact (0) | 2018.07.14 |