[SWEA] C++ 1209. [S/W 문제해결 기본] 2일차 - Sum(D3)

swb·2022년 11월 14일
0

SWEA

목록 보기
8/19

문제 바로가기

접근방법

  1. 가로 = [i][j], 세로 = [j][i], 대각 = [i][i]
  2. 가장 큰 값 출력.
  3. 비교적 쉬운 문제

풀이

#include <iostream>
#include <string>
#include <algorithm>
#include <queue>
#define RULE 100
#define max(a,b) (a>b?a:b)
using namespace std;

int test_case, T = 10, tn;
int arr[RULE][RULE];
int sum1, sum2, sum3, max_sum;

void inputArr() {
	for (int i = 0; i < RULE; i++) {
		for (int j = 0; j < RULE; j++) {
			cin >> arr[i][j];
		}
	}
}

void maxSum() {
	max_sum = 0;
	for (int i = 0; i < RULE; i++) {
		sum1 = 0, sum2 = 0, sum3 = 0;
		for (int j = 0; j < RULE; j++) {
			sum1 += arr[i][j];
			sum2 += arr[j][i];
			if (i == j) // 대각은 굳이 안 해줘도 될 듯하다.
				sum3 += arr[i][j];
		}

		max_sum = max(max_sum, sum1);
		max_sum = max(max_sum, sum2);
		max_sum = max(max_sum, sum3);
	}
}

int main() {
	ios_base::sync_with_stdio(false);
	cin.tie(NULL);

	for (test_case = 1; test_case <= T; test_case++) {
		cin >> tn;

		inputArr(); // 배열 입력
		maxSum(); // 가장 큰 합 찾기

		cout << "#" << test_case << " " << max_sum << "\n";
	}
	return 0;
}
profile
개발 시작

0개의 댓글