티스토리 뷰
💡 문제 해결 아이디어
- 중요한 점: 원본 보드에 수정을 가하면 안된다!!
- (원본 보드에 수정을 가하면, 지뢰가 없는 위험지대를 지뢰가 있다고 착각할 수 있다.)
- product함수를 이용해, 깔끔하게 코딩해본다.
💻 작성된 코드
from itertools import product
def solution(board):
size = len(board)
# 원본 board가 변경되는 것을 막기 위해, 별도의 보드를 만든다.
board_copy = [[0] * size for _ in range(size)]
# 주변 셀들을 탐색하기 위한 준비.
case = [-1, 0, 1]
# 보드의 각 셀에 대해서 반복한다.
for x, y in product(range(size), range(size)):
if board[x][y]:
# 만약 지뢰가 있다면, 해당 셀을 둘러싼 모든 주변 셀들을 마킹한다.
for for_x, for_y in product(case, case):
# 다만, 보드 사이즈를 벗어나는지 우선 확인한다.
if 0 <= x + for_x < size and 0 <= y + for_y < size:
board_copy[x + for_x][y + for_y] = 1
# 각 줄의 안전지대(0)의 개수를 세서 합친다.
count = sum([row.count(0) for row in board_copy])
return count
'코딩테스트 > 프로그래머스' 카테고리의 다른 글
[프로그래머스 아이템줍기] (파이썬) (0) | 2023.01.08 |
---|---|
[프로그래머스 연속된 수의 합] (파이썬) (0) | 2023.01.08 |
[프로그래머스 평행] (파이썬) (0) | 2023.01.07 |
프로그래머스 옹알이 (파이썬) (0) | 2023.01.07 |
[프로그래머스,파이썬] 귤고르기 (0) | 2023.01.05 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 코테
- leetcode
- 가장 가까운 글자 파이썬
- 인공지능
- BFS
- 알고리즘
- OpenAI
- 프로그래머스 문자열 나누기
- 파이썬
- 프로그래머스 가장 가까운 글자
- 프로그래머스
- 프로그래머스 파이썬
- 프로그래머스 아이템줍기
- 디펜스
- 연습문제
- 큐
- Stable Diffusion
- Low Manifold Theory
- python
- 스테이블디퓨전
- 그리디
- ChatGPT
- 프로그래머스 연속된수의합
- 코딩테스트
- heap
- Attend and Excite
- 문자열 나누기 파이썬
- stablediffusion
- heapq
- 프로그래머스 햄버거 만들기
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
글 보관함