본문 바로가기

Algorithm/CodeUp

[CodeUp_Java] Q1678 : 철광석 제련

반응형

안녕하세요! 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(순위)

반응형