What I Learned/Algorithm Practice
[programmers - python] Lv.0: 안전지대
Interrobang
2022. 12. 20. 20:37
문제 링크
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제 풀이
def solution(board):
temp = [[0 for _ in range(len(board) + 2)] for _ in range(len(board) + 2)]
for i in range(len(board)):
for j in range(len(board)):
temp[i+1][j+1] = board[i][j]
answer = 0
for i in range(len(board)):
for j in range(len(board)):
check = 0
for p in range(3):
for q in range(3):
if temp[i+p][j+q] == 1:
check += 1
if check == 0:
answer += 1
return answer

*key point: 주어진 2차원 배열을 0으로 둘러싸는 새로운 배열을 만들고 테두리 부분을 제외하고 3*3칸씩 탐색하여 1이 하나도 없으면 가운데 칸은 안전지대이므로 반복문으로 세어준다.