https://www.acmicpc.net/problem/1895
[문제 해석]
이 문제는 영상처리 기술에서 사용되는 필터를 이용한 잡음 제거 문제이다.
3x3 크기의 필터만을 발췌하여 해당 필터의 중앙값을 도출해내어 J라는 새로운 필터를 구한다.
그 필터에서 임계값 T보다 크거나 같은 픽셀 수의 개수를 출력하는 문제이다.
[코드]
R, C = map(int, input().split())
Filter = []
for r in range(R) :
Filter.append(list(map(int,input().split())))
T = int(input())
J = []
for r in range(R-3+1) :
for c in range(C-3+1) :
median = []
for i in range(r, r+3) :
for j in range(c, c+3) :
median.append(Filter[i][j])
median.sort()
J.append(median[4])
cnt = 0
for k in J:
if k > T or k == T :
cnt += 1
print(cnt)
[문제 풀이]
- 행과 열에 대해서 입력받는다.
- Filter라는 빈 리스트를 생성하여 입력값으로 준 픽셀 값들을 행과 열에 따라 입력받는다.
- 임계값 T 역시 입력받는다.
- J라는 빈 리스트를 생성하여 중앙값들만을 저장할 준비를 한다.
- 3x3크기 만큼의 필터만을 발췌하여 해당 픽셀값 중 중앙값을 찾아 J 리스트에 추가한다.
- count를 0으로 초기화하고, J 필터 내에 있는 원소 중 T보다 크거나 같다면 count에 1을 더한다.
- 최종적으로 count를 출력한다.
'Koala - 7기 > 코딩테스트 준비 스터디' 카테고리의 다른 글
[백준/Python] 1969번 DNA (0) | 2022.07.08 |
---|---|
[BOJ / Python] 6603 - 로또 (0) | 2022.07.08 |
[백준/C++] 6603번 로또 (0) | 2022.07.06 |
[백준/C++] 9095번 1, 2, 3 더하기 (0) | 2022.07.06 |
[백준/JAVA] 14939번 불 끄기 (0) | 2022.07.05 |