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;
}