개발계발
프로그래머스 - 안전지대(120866) 본문
문제 설명
제한사항
접근방식
- 안전지역을 표시할 2차원배열 생성
- board의 모든 원소를 검사
- board의 원소가 1이면 만들어놓은 2차원배열의 동,서,남,북, 대각선을 모두 위험지역으로 표시
- 생성한 2차원배열의 안전지역 count해서 반환
풀이 코드
def solution(board):
answer = 0
n = len(board)
safe_board = [[0] * n for _ in range(n)]
directions = [(-1, -1), (-1, 0), (-1, 1), (0, -1), (0, 1), (1, -1), (1, 0), (1, 1)]
for i in range(n):
for j in range(n):
if board[i][j] == 1:
safe_board[i][j] = 1
for dx, dy in directions:
nx, ny = i + dx, j + dy
if 0 <= nx < n and 0<= ny < n:
safe_board[nx][ny] = 1
for i in range(n):
for j in range(n):
if safe_board[i][j] == 0:
answer += 1
return answer
'알고리즘' 카테고리의 다른 글
프로그래머스 - 겹치는 선분의 길이(120876) (0) | 2024.04.23 |
---|---|
프로그래머스 - 주사위 게임3(181916) (0) | 2024.04.23 |
프로그래머스 - 분수의 덧셈(120808) (0) | 2024.04.23 |
프로그래머스 - 다항식 더하기(120863) (0) | 2024.04.23 |
프로그래머스 - 특이한 정렬(120880) (0) | 2024.04.23 |