Algorithm/CodeUp

[CodeUp_Java] Q1678 : 철광석 제련

Plitche 2023. 1. 30. 09:22
반응형

안녕하세요! Plitche(플리체)입니다.
이번 포스팅의 주제는 Q1678 철광석 제련 (자바, JAVA)입니다.

Intro

Question

문제 설명

입력

1) 5행 5열의 정수가 입력된다.
2) 입력되는 수는 모두 25개이며, 공백으로 구분된다.
3) 각 수 값은 모두 100이하의 자연수이다.

출력

최대 가치를 가지는 3*3영역의 가치의 합을 출력한다.

예시

  • 입력 :
    1 1 1 1 1
    1 1 2 2 2
    1 1 2 2 2
    1 1 2 2 2
    1 1 1 1 1
  • 출력 : 18

Solution (풀이)

  • 풀이 : 메모리 11160, 시간 : 70
public class Answer {

    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        int[][] arr = new int[5][5];

        for (int i=0; i<5; i++) {
            StringTokenizer st = new StringTokenizer(br.readLine(), " ");
            for (int j=0; j<5; j++) {
                arr[i][j] = Integer.parseInt(st.nextToken()); 
            }
        }

        int max = 0;
        int sum = 0;
        int width = 0;
        int height = 0;
        for (int p=0; p<9; p++) {
            for (int i=width; i<width+3; i++) {
                for (int j=height; j<height+3; j++) {
                    sum += arr[i][j];    

                    if (max < sum) {
                        max = sum;
                    }
                }
            }

            sum = 0;

            if (width!=2) {
                width++;
            } else {
                width = 0;
                height++;
            }
        }

        System.out.println(max);
    }

}

Ranking(순위)

반응형