https://www.acmicpc.net/problem/17829
17829번: 222-풀링
조기 졸업을 꿈꾸는 종욱이는 요즘 핫한 딥러닝을 공부하던 중, 이미지 처리에 흔히 쓰이는 합성곱 신경망(Convolutional Neural Network, CNN)의 풀링 연산에 영감을 받아 자신만의 풀링을 만들고 이를 22
www.acmicpc.net
- 단순한 구현 문제로, 예외 처리 해줄 부분도 딱히 없다.
- N x N 의 행렬이 반드시 2의 거듭제곱 꼴로 주어지기 때문에 2번째 최대값을 뽑아내는 풀링만 구현하면 문제 될 것이 없다.
N = int(input())
img = [list(map(int, input().split())) for i in range(N)]
def filter(img, r, c): # 4칸 중 두번째 높은 값 반환해주는 함수
return sorted([img[r][c], img[r][c+1], img[r+1][c], img[r+1][c+1]])[-2]
def pooling(img): # stride=2 로 풀링하는 함수
return [[filter(img, r, c) for c in range(0, len(img), 2)] for r in range(0, len(img), 2)]
while len(img) > 1: # 1 x 1 이 될 때 까지 풀링을 반복
img = pooling(img)
print(img[0][0])
'PS > BOJ' 카테고리의 다른 글
[백준] 9553 : 양궁 (0) | 2021.06.30 |
---|---|
[백준] 4172 : sqrt log sin (0) | 2021.06.29 |
[백준] 20040 : 사이클 게임 (0) | 2021.06.27 |
[백준] 2143 : 두 배열의 합 (0) | 2021.06.26 |
[백준] 2876 : 그래픽스 퀴즈 (0) | 2021.06.25 |