티스토리 뷰
https://school.programmers.co.kr/learn/courses/30/lessons/120866
프로그래머스
SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
배열 board은 지뢰가 있는 지역은 1, 지뢰가 없는 지역은 0으로 저장되어 있습니다. 위험지역은 지뢰가 있는 지역과 지뢰에 인접한 위, 아래, 좌, 우, 대각선 칸을 포함합니다. 지뢰가 매설된 지역의 지도 board가 매개변수로 주어질 때, 안전한 지역의 칸 수를 반환하는 solution 함수를 완성해 주세요
Test Case 1) 지뢰가 (3,2)에 위치할 때 위험 지역은 총 8칸, 따라서 안전한 지역의 칸 수는 16

- board [i][j]가 1인 곳부터 탐색하기
- 지뢰 지역(board [i][j]=1) 인접한 곳이 위험 지역이므로 그 지역부터 8방향 탐색을 진행
- 8방향 탐색 방법
- dx = [-1,-1,0,1,1,1,0,-1]
- dy = [0,1,1,1,0,-1,-1,-1]
- 격자판을 벗어나는 기준과 옮긴 위치가 1인 경우를 제외
- nx : 옮긴 위치의 x 좌표
- ny : 옮긴 위치의 y 좌표
- 옮긴 위치가 격자판 안에 있고, 방문하지 않은 곳인지를 확인
- 옮긴 위치가 1이 아닌 경우, 위험 지역의 수를 더해주고 방문 여부를 방문으로 바꿔주기
- 안전 지역의 수 = 전체 격자판 수 - (지뢰 지역의 수 + 지뢰 지역과 인접한 지역의 수)
def solution(board):
answer = 0 #위험지역 수
dx = [-1,-1,0,1,1,1,0,-1]
dy = [0,1,1,1,0,-1,-1,-1]
checked = [[False for col in range(len(board))] for row in range(len(board))]
for i in range(len(board)):
for j in range(len(board)):
if board[i][j]==1:
for k in range(8):
nx = i + dx[k]
ny = j + dy[k]
if nx>=0 and ny>=0 and nx<len(board) and ny<len(board) and checked[nx][ny]==False:
if board[nx][ny]!=1:
checked[nx][ny]=True
answer+=1
return len(board)*len(board)-(sum(row.count(1) for row in board)+answer)
* 2차원 배열에서 특정값의 개수 구하기
-> sum(row.count(특정값) for row in 배열)
'Python' 카테고리의 다른 글
| [프로그래머스] 할인행사 (0) | 2025.06.01 |
|---|---|
| [프로그래머스] 연속된 부분 수열의 합 (0) | 2025.05.26 |
| [OpenCV2] 이미지 연산 (0) | 2025.04.10 |
| [OpenCV 1] 이미지 실행 및 스레시홀딩 (0) | 2025.04.05 |
| [프로그래머스] 겹치는 선분의 길이 (0) | 2025.03.15 |
TAG
- nlp #토큰화 #nltk #konply
- 자연어 처리 #정제 #정규표현식 #어간 추출 #표제어 추출
- #django #mvt 패턴
- 머신러닝 #project #classification #dacon
- #with recursive #입양시각 구하기(2) #mysql
- #tf idf
- #python #프로그래머스 #외계어사전 #itertools #순열과조합
- #자연어 처리 #정수 인코딩 #빈도 수 기반
- #seq2seq #encoder #decoder #teacher forcing
- #opencv #이미지 읽기 #이미지 제작 #관심영역 지정 #스레시홀딩
- #attention #deeplearning
- 머신러닝 #xgboost #
- python #프로그래머스 #겹치는선분의길이
- #opencv #이미지 연산 #합성
- #docker #container #docker command
- #웹 프로그래밍 #서버 #클라이언트 #http #was
- randomforest #bagging #머신러닝 #하이퍼파라미터 튜닝
- 프로젝트 #머신러닝 #regression #eda #preprocessing #modeling
- #docker #image #build #dockerfile
- 잘라서 배열로 저장하기 #2차원으로 만들기
- # 프로그래머스 # 카펫 # 완전탐색
- pca #주성분분석 #특이값분해 #고유값분해 #공분산행렬 #차원의 저주
- #물고기 종류별 대어 찾기 #즐겨찾기가 가장 많은 식당 정보 출력하기 #mysql #programmers
- #polars #대용량 데이터셋 처리
- # 할인행사 #counter #딕셔너리 #프로그래머스
- 로지스틱 회귀 #오즈비 #최대우도추정법 #머신러닝
- #프로그래머스 #안전지대 #시뮬레이션
- 머신러닝 #lightgbm #goss #ebf
- # 프로그래머스 #연속된 부분수열의 합 #이중 포인터 #누적합
- #docker #docker compose
글 보관함
최근에 올라온 글