Koala - 17기/코딩테스트 심화 스터디

[백준/C++] 1895번: 필터

alswns8081 2025. 1. 10. 21:05

 

접근 방법

이미지는 R X C의 2차원 픽셀, 필터의 크기는 3 X 3이고 이미지의 중앙값을 통해 판단
Brute Force로 조금은 무식하게 시도해보자.


필터의 크기가 3 X 3 이므로, 9개의 값을 배열에 저장 후 중간값을 구해 해당 값을 T(임계값)와 비교
이를 2중 반복문으로 R-2, C-2 까지 반복해서 비교

#include <algorithm>
#include <iostream>
using namespace std;

int main() {
    int R, C;
    cin >> R >> C;

    int A[R][C];
    for (int i = 0; i < R; i++) {
        for (int j = 0; j < C; j++) {
            cin >> A[i][j];
        }
    }

    int T;
    cin >> T;


    int count = 0;
    for (int i = 0; i < R - 2; i++) {
        for (int j = 0; j < C - 2; j++) {
            int arr[9] = {A[i][j], A[i][j + 1], A[i][j + 2], A[i + 1][j], A[i + 1][j + 1], A[i + 1][j + 2], A[i + 2][j], A[i + 2][j + 1], A[i + 2][j + 2]};

            sort(arr, arr + 9);
            if (arr[4] >= T) count++;
        }
    }

    cout << count;
    return 0;
}