[백준 14500번] 테트로미노 - Python으로 구현하기
문제 접근
- 테트로미노가 되는 도형 5개를 제시해주었다.
- 해당 도형을 회전, 대칭시켜서 나올 수 있는 모든 경우의 수를 탐색하자
생각해볼 점
- 백트래킹으로 풀 수 있을 것 같다. 도전해보기!
오답 분석
- 좌표 계산 실수
- 단순 구현으로 문제를 접근 하는 경우 실수하면 찾기 힘드므로 집중하기!
# 테트로미노
n,m=map(int,input().split())
map_data = [list(map(int,input().split())) for _ in range(n)]
t1 =[[[0,0],[1,0],[2,0],[3,0]],
[[0,0],[0,1],[0,2],[0,3]]]
t2 = [[[0,0],[0,1],[1,0],[1,1]]]
t3 =[[[0,0],[1,0],[2,0],[2,-1]],
[[0,0],[0,-1],[1,0],[2,0]],
[[0,0],[1,0],[2,0],[2,1]],
[[0,0],[1,0],[2,0],[0,1]],
[[0,0],[0,-1],[0,-2],[1,0]],
[[0,0],[-1,0],[0,-1],[0,-2]],
[[0,0],[-1,0],[0,1],[0,2]],
[[0,0],[1,0],[0,1],[0,2]]]
t4 = [[[0,0],[1,0],[1,1],[2,1]],
[[0,0],[0,1],[-1,1],[-1,2]],
[[0,0],[1,0],[1,-1],[2,-1]],
[[0,0],[0,1],[1,1],[1,2]]]
t5 = [[[0,0],[0,1],[0,2],[1,1]],
[[0,0],[0,1],[-1,1],[1,1]],
[[0,0],[0,1],[0,2],[-1,1]],
[[0,0],[1,0],[2,0],[1,1]]]
all_case=t1+t2+t3+t4+t5
max_sum=0
for i in range(n):
for j in range(m):
for tet in all_case:
tmp = 0
for tet_pos in tet:
nx,ny=i+tet_pos[0],j+tet_pos[1]
if 0<=nx<n and 0<=ny<m:
tmp+=map_data[nx][ny]
else:
break
max_sum=max(max_sum,tmp)
print(max_sum)
* 틀린 부분이나 더 나은 방법이 있을 수 있습니다. 지적해주시면 감사하겠습니다!!
'posts' 카테고리의 다른 글
[백준 14502번] 연구소 - Python으로 구현하기 (0) | 2019.10.17 |
---|---|
[백준 14501번] 퇴사 - Python으로 구현하기 (0) | 2019.10.17 |
[백준 14499번] 주사위 굴리기 - Python으로 구현하기 (0) | 2019.10.17 |
[백준 13458번] 시험 감독 - Python으로 구현하기 (0) | 2019.10.17 |
[백준 3190번] 뱀 - Python 으로 구현하기 (0) | 2019.10.17 |