[SWEA] 1209. Sum _ JAVA

jii0_0·2022년 8월 11일
0

SW Expert Academy

목록 보기
4/33
post-thumbnail

[S/W 문제해결 기본] 2일차 - Sum (D3)

문제 링크

  • 입력된 100*100 배열의 각 행, 열, 대각선의 합을 구하고 그 중 최대값을 출력한다.
  • 각 행, 열, 대각선의 합을 저장할 sum배열을 2*101 로 만들어
    • 0행에는 각 행의 인덱스의 합을 계산
    • 1행에는 각 열의 인덱스의 합을 계산
    • 대각선의 합은 각각 [0][100] / [1][100] 에 저장했다.

Solution

package swea;
//[S/W 문제해결 기본] 2일차 - Sum
import java.util.Scanner;

public class p1209 {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		
		for(int t=1; t<=10; t++) { // 테스트케이스 10개
			sc.nextInt(); // 테스트케이스 입력 날리기
			int[][] sum = new int[2][101]; // 각 줄 합 저장할 배열
			
			for(int i=0; i<100; i++) {
				for (int j=0; j<100; j++) {
					int n = sc.nextInt();
					sum[0][i] += n; // 입력된 숫자의 행 sum+=n
					sum[1][j] += n; // 입력된 숫자의 열 sum+=n
					if (i==j) sum[0][100] += n; // 입력된 숫자가 오른쪽 아래로 떨어지는 대각선 숫자라면 sum+=n
					if ((i+j)==99) sum[1][100] += n; // 입력된 숫자가 왼쪽 아래로 떨어지는 대각선 숫자라면 sum+=n
				}
			}
			
			int max = -1; // 최대값 저장 변수
			for(int i=0; i<2; i++) { // sum 배열 돌기
				for (int j=0; j<101; j++) {
					if (sum[i][j] > max) max = sum[i][j]; // 가장 큰 값 찾기
				}
			}
			
			System.out.printf("#%d %d\n", t, max);
		}
	}
}
profile
느려도 꾸준히

0개의 댓글