728x90
풀이
2차원 배열 표현
문제 안에서 고려해야할 방향은 상, 하, 좌, 우, 대각선까지 총 4갈래방향
x,y 좌표상에서 지뢰의 위치를 (0,0)이라고할때 고려할 수 있는 위치는
(1,0) : 상
(-1,0) : 하
(0,1) : 우
(0,-1) : 좌
(1,1) : 우상
(-1,1) : 좌상
(-1,-1) : 좌하
(1,-1) : 우하
총 8방향
코드
def solution(board):
answer = 0
# 사각형을 만들어주는 좌표 리스트
N = len(board)
# dx: x좌표에서 나올 수 있는 경우의 수 리스트
dx = [-1,1,0,0,-1,-1,1,1]
# dy: y좌표에서 나올 수 있는 경우의 수 리스트
dy = [0,0,-1,1,-1,1,-1,1]
# z : 지뢰가 설치된 곳
z = []
for x in range(N):
for y in range(N):
# 배열에 지뢰인 좌표값을 찾아서 그 값을 z에 넣기
if board[x][y] == 1:
z.append((x, y))
for x, y in z:
for i in range(8):
nx = x + dx[i] #주변 지뢰 x위치 배치
ny = y + dy[i] #주변 지뢰 y위치 배치
if 0<=nx<N and 0<=ny<N:
board[nx][ny] = 1
for b in board:
answer += b.count(0)
return answer
반응형
'coding test' 카테고리의 다른 글
프로그래머스 A로 B만들기 (0) | 2023.06.15 |
---|---|
프로그래머스 치킨쿠폰 (0) | 2023.06.15 |
프로그래머스 - 특이한 정렬 (0) | 2023.06.15 |
유한소수 판별하기 (0) | 2023.06.15 |
프로그래머스 삼각형의 완성 (2) (0) | 2023.06.15 |