백준 1895 java

magicdrill·2024년 9월 16일
0

백준 문제풀이

목록 보기
440/656

백준 1895 java

여러 메서드로 분리하는 방법 + Vector + Colletions.sort()를 사용해 봤다.
자료구조를 만드는 과정에서 class를 사용해보려 했는데 더 연습해 보겠다.

import java.util.Collection;
import java.util.Collections;
import java.util.Scanner;
import java.util.Vector;

public class bj1895 {
    // Scanner를 전역 변수로 선언
    static Scanner scanner = new Scanner(System.in);
    public static Vector<Vector<Integer>> inputImage()
    {
        Vector<Vector<Integer>> image = new Vector<>();
        int R, C, i, j, V;

        R = scanner.nextInt();
        C = scanner.nextInt();
        for(i = 0; i < R; i++)
        {
            Vector<Integer> row = new Vector<>();
            for(j = 0; j < C; j++)
            {
                V = scanner.nextInt();
                row.add(V);
            }
            image.add(row);
        }

//        System.out.println();
//        for(i = 0; i < R; i++)
//        {
//            for(j = 0; j < C; j++)
//            {
//                System.out.print(image.get(i).get(j) + " ");
//            }
//            System.out.println();
//        }

        return image;
    }

    public static void findAnwser(Vector<Vector<Integer>> image)
    {
        int i, j, n, m;
        int R = image.size();
        int C = image.get(0).size();
        int count = 0;
        int T = scanner.nextInt();
        //System.out.println("R : " + R + " / C : " + C);

        for(i = 0; i < R - 2; i++)
        {
            for(j = 0; j < C - 2; j++)
            {
                Vector<Integer> filter = new Vector<>();
                for(n = i; n < i + 3; n++)
                {
                    for(m = j; m < j + 3; m++)
                    {
                        filter.add(image.get(n).get(m));
                    }
                }
                Collections.sort(filter);
                //System.out.println("filter : " + filter);
                //System.out.println("filter.get(4) : " + filter.get(4));
                if(filter.get(4) >= T)
                {
                    count++;
                }
            }
        }
        System.out.println(count);
    }

    public static void main(String[] args) {
        Vector<Vector<Integer>> image = new Vector<>();
        int T;

        image = inputImage();
        findAnwser(image);

        scanner.close();
    }
}

0개의 댓글