입력)
- 10개의 테스트 케이스
- 100x100 크기의 2차원 정수 배열
출력)
- 출력값이 integer 범위를 넘지 않음!
- #(테스트 케이스 번호) (각 행의 합, 각 열의 합, 각 대각선의 합 중 최댓값)
입, 출력 분석)
- (생략)
핵심)
- for문을 잘 다룰 수 있는 능력만 있다면 충분히 할 수 있다.
예시 분석)
- (생략)
실수)
- 대각선 / 부분에서 x index는 증가하고, y index만 99(100아님!)에서 감소한다는 것
구현)
#include<stdio.h>
using namespace std;
#define SIZE 100
int arr[SIZE][SIZE] = {0,};
int MAX = 0;
int main(int argc, char** argv) {
int test_case;
for (test_case = 1; test_case <= 10; ++test_case) {
MAX = 0;
scanf("%d", &test_case);
for (int i = 0; i < SIZE; i++){
int temp = 0;
for (int j = 0; j < SIZE; j++){
scanf("%d", &arr[i][j]);
temp += arr[i][j]; // 각 행의 합
}
if(MAX < temp) MAX = temp;
}
for (int j = 0; j < SIZE; j++){
int temp = 0;
for (int i = 0; i < SIZE; i++)
temp += arr[i][j]; // 각 열의 합
if(MAX < temp) MAX = temp;
}
int temp1 = 0, temp2 = 0;
for (int i = 0; i < SIZE; i++){
temp1 += arr[i][i];
temp2 += arr[i][(SIZE-1)-i]; // 실수한 부분!
}
if(MAX < temp1) MAX = temp1;
if(MAX < temp2) MAX = temp2;
printf("#%d %d\n", test_case, MAX);
}
return 0;
}
'Algorithm&Problem > [Problems] SWEA' 카테고리의 다른 글
BOJ[20055]. 컨베이어 벨트 위의 로봇 (0) | 2021.04.21 |
---|---|
[D4] 1211. ladder2 (0) | 2020.08.20 |
[D4] 1210.Ladder1 (0) | 2020.08.18 |
[D3] 1206. View (0) | 2020.08.08 |
[D3] 1208. Flatten (0) | 2020.07.25 |