소스 코드
T = int(input())
# 좌 우 우하 위치의 타일 확인위한 인덱스
x = [0,1,1]
y = [1,0,1]
for tc in range(1,1+T):
n,m = map(int,input().split())
tiles = [list(input()) for _ in range(n)]
# 방문여부
check = [[0]*m for _ in range(n)]
answer = 0
for q in range(n):
if answer == 1:
break
for w in range(m):
if answer == 1:
break
if tiles[q][w] == '#' and check[q][w] == 0:
check[q][w] = 1
# 3 방향 확인
for e in range(3):
i = x[e] + q
j = y[e] + w
if i < n and j < m:
if tiles[i][j] == '#':
check[i][j] = 1
else:
answer = 1
break
else:
answer = 1
break
if answer == 1:
print('#{} {}'.format(tc,'NO'))
else:
print('#{} {}'.format(tc,'YES'))
해결 방법
1. 깨진 타일을 발견하면 해당 위치에서 우, 하, 우하 위치의 타일을 확인
2. 2x2 타일이 모두 깨진 상태면 방문 확인 후 계속 진행 그 외의 경우 break
느낀 점
ps. 개인적인 코드와 코드를 작성의 이유를 적은 것입니다.
오류나 적절치 않은 문법이 존재할 수 있으며, 다른 분들께는 굉장히 비효율적인 방법으로 여겨질 수 있습니다.
혹시 개선 사항, 오류 및 문제에 대한 수정 사항 등을 댓글로 남겨주신다면 감사한 마음으로 배우고 수정하겠습니다.
'코딩 문제해결 > 문제 풀이.SWEA' 카테고리의 다른 글
[SWEA 코딩] 교환학생 - PYTHON #13038 (0) | 2022.01.03 |
---|---|
[SWEA 코딩] 장마 속의 막대 - PYTHON #12742 (0) | 2021.10.13 |
[SWEA 코딩] 콩 많이 심기 - PYTHON #4301 (0) | 2021.07.15 |
[SWEA 코딩] 부분 수열의 합 - PYTHON #2817 (0) | 2021.07.14 |
[SWEA 코딩] 격자판의 숫자 이어 붙이기 - PYTHON #2819 (0) | 2021.07.13 |