Jun's Development Journey

[SWEA] 1209. [S/W 문제해결 기본] Array2 - Sum 본문

SWEA/Intermediate

[SWEA] 1209. [S/W 문제해결 기본] Array2 - Sum

J_Jayce 2019. 8. 1. 12:47

문제

https://www.swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV13_BWKACUCFAYh&categoryId=AV13_BWKACUCFAYh&categoryType=CODE

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

www.swexpertacademy.com

 

 

풀이

이 문제는 입력 데이터의 형태를 제대로 파악하지 않고 입력을 받아 계속된 오류 때문에 고생했던 문제이다. 입력 값 맨 앞에는 문제 번호를 받는 데이터가 하나 더 있었다. 다음 문제부턴 이 부분도 신경쓰면서 구현해야겠다.

우선 각 행과 열과 합의 최대를 구하기 위해서 첨자를 이용해서 행과 열의 합을 한번에 구할 수 있도록 함수를 구현했다.

두 대각합의 경우는 대각의 첨자와 배열의 크기를 이용해서 정방향의 대각합과 역방향의 대각합을 한번에 구할 수 있도록 함수를 구현했다.

 

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
41
42
43
44
45
46
47
48
49
50
51
52
import java.util.*;
 
public class Solution {
    static Scanner scan = new Scanner(System.in);
    static int[][] array = new int[100][100];
    
    static int rc_sum_max() {//행과 열의 합 중 가장 큰 값 리턴하는 함수
        int t_max = -1;
        for(int i=0;i<100;i++) {
            int r_sum=0, c_sum=0;
            for(int j=0;j<100;j++
                r_sum+=array[i][j];
            for(int k=0;k<100;k++)
                c_sum+=array[k][i];
            t_max = Math.max(t_max, Math.max(r_sum, c_sum));
        }
        return t_max;
    }
    
    static int d_sum_max() {//두 대각선의 합 중 큰 값을 리턴하는 함수
        int d_sum1=0, d_sum2=0;
        for(int i=0;i<100;i++) {
            d_sum1+=array[i][i];
            d_sum2+=array[i][100-i-1];//첨자와 배열 크기를 이용하여 반대 대각 값 구하기
        }
        return Math.max(d_sum1, d_sum2);
    }
 
    static void read() {
        scan.nextInt();//골 때리는 문제 번호 입력 부분
        for(int i=0;i<100;i++) {
            for(int j=0;j<100;j++) {
                array[i][j] = scan.nextInt();
            }
        }
    }
    static void solution() {
        int answer = 0;
        for(int i=1;i<=10;i++) {
            read();
            answer = Math.max(rc_sum_max(), d_sum_max());
            System.out.println("#"+i+" "+answer);
        }
    }
 
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        solution();
    }
 
}
 
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4ftext-decoration:none">Colored by Color Scripter