-
[백준] 14500번_테트로미노Study/알고리즘 2020. 2. 15. 20:57
문제 링크 : https://www.acmicpc.net/problem/14500
14500번: 테트로미노
폴리오미노란 크기가 1×1인 정사각형을 여러 개 이어서 붙인 도형이며, 다음과 같은 조건을 만족해야 한다. 정사각형은 서로 겹치면 안 된다. 도형은 모두 연결되어 있어야 한다. 정사각형의 변끼리 연결되어 있어야 한다. 즉, 꼭짓점과 꼭짓점만 맞닿아 있으면 안 된다. 정사각형 4개를 이어 붙인 폴리오미노는 테트로미노라고 하며, 다음과 같은 5가지가 있다. 아름이는 크기가 N×M인 종이 위에 테트로미노 하나를 놓으려고 한다. 종이는 1×1 크기의 칸으로 나누
www.acmicpc.net
tetro = (((0,1),(0,2),(0,3)), ((1,0),(2,0),(3,0)), ((0,1),(1,0),(1,1)), ((1,0),(2,0),(2,1)), ((0,1),(0,2),(-1,2)), ((0,1),(1,1),(2,1)), ((1,0),(0,1),(0,2)), ((0,1),(-1,1),(-2,1)), ((1,0),(1,1),(1,2)), ((0,1),(1,0),(2,0)), ((0,1),(0,2),(1,2)), ((1,0),(1,1),(2,1)), ((0,1),(-1,1),(-1,2)), ((1,0),(0,1),(-1,1)), ((0,1),(1,1),(1,2)), ((0,-1),(0,1),(1,0)), ((-1,0),(0,1),(1,0)), ((0,-1),(-1,0),(1,0)), ((-1,0),(0,-1),(0,1))) n,m = map(int,input().split()) paper = [list(map(int,input().split())) for _ in range(n)] max_sum = 0 for i in range(n): for j in range(m): for t in tetro: try: sum_ = paper[i][j] for k in range(3): sum_ += paper[i+t[k][0]][j+t[k][1]] max_sum = max(max_sum,sum_) except IndexError: continue print(max_sum)
'Study > 알고리즘' 카테고리의 다른 글
[백준] 1260번_DFS와BFS (0) 2020.02.20 [백준] 1138번_한줄로서기 (0) 2020.02.19 [백준] 1476번_날짜계산 (0) 2020.02.15 [백준] 2309번_일곱난쟁이 (0) 2020.02.15 [백준] 6588번_골드바흐의추측 (0) 2020.02.14