문제링크
https://www.acmicpc.net/problem/17829
'divide=size//2'로 정사각형을 4등분을 할 수 있도록 하였다.
그리고 dnc함수에서 lefttop,righttop,leftbottom,rightbottom으로 나누어 진행될 수 있도록 하였다.
정답코드
import sys
N = int(sys.stdin.readline())
nums = []
for i in range(N):
nums.append(list(map(int,sys.stdin.readline().split())))
def dnc(size,x,y):
divide = size // 2
if size == 2:
group=[nums[x][y], nums[x+1][y], nums[x][y+1], nums[x+1][y+1]]
group.sort(reverse=True) #내림차순 정렬
return group[1]
lefttop = dnc(divide,x,y)
righttop = dnc(divide,x+divide,y)
leftbottom = dnc(divide,x,y+divide)
rightbottom = dnc(divide,x+divide,y+divide)
group = [lefttop,righttop,leftbottom,rightbottom]
group.sort(reverse=True)
return group[1]
print(dnc(N,0,0))
728x90
'파이썬 알고리즘 문제 풀이' 카테고리의 다른 글
Baekjoon Online Judge 9093 (0) | 2023.02.14 |
---|---|
Baekjoon Online Judge 4256번 파이썬. 분할정복. (0) | 2023.02.07 |
Baekjoon Online Judge 2448번 파이썬. 분할 정복. (0) | 2023.01.19 |
Baekjoon Online Judge 2447번 파이썬. 분할 정복. (0) | 2023.01.18 |
Baekjoon Online Judge 11728번 (0) | 2023.01.13 |