티스토리 뷰
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.05.26 |
---|---|
[OpenCV2] 이미지 연산 (0) | 2025.04.10 |
[OpenCV 1] 이미지 실행 및 스레시홀딩 (0) | 2025.04.05 |
[프로그래머스] 겹치는 선분의 길이 (0) | 2025.03.15 |
[프로그래머스] 순열과 조합을 이용한 문제 연습 (0) | 2025.02.16 |
TAG
- #python #프로그래머스 #외계어사전 #itertools #순열과조합
- 머신러닝 #project #classification #dacon
- #opencv #이미지 연산 #합성
- 파이썬 #코딩테스트 #프로그래머스 #스택 #큐
- 머신러닝 #lightgbm #goss #ebf
- #프로그래머스 #안전지대 #시뮬레이션
- nlp #토큰화 #nltk #konply
- 파이썬 #시각화 #matplotlib
- #seq2seq #encoder #decoder #teacher forcing
- 자연어 처리 #정제 #정규표현식 #어간 추출 #표제어 추출
- #tf idf
- 로지스틱 회귀 #오즈비 #최대우도추정법 #머신러닝
- python #deque #프로그래머스 #공 던지기 #문자열 계산하기 #코딩테스트
- subquery #sql 코딩테스트
- 프로젝트 #머신러닝 #regression #eda #preprocessing #modeling
- 머신러닝 #xgboost #
- python #프로그래머스 #겹치는선분의길이
- gan #생성자 #판별자 #적대적 신경 신경망 #딥러닝 #computer vision
- #opencv #이미지 읽기 #이미지 제작 #관심영역 지정 #스레시홀딩
- #attention #deeplearning
- pca #주성분분석 #특이값분해 #고유값분해 #공분산행렬 #차원의 저주
- # 프로그래머스 #연속된 부분수열의 합 #이중 포인터 #누적합
- 딥러닝 #오차역전파 #연쇄법칙 #계산그래프 #최적화
- python #프로그래머스 #리스트 #인덱싱
- seaborn #데이터시각화 #타이타닉
- html #javascript #구구단 출력
- 잘라서 배열로 저장하기 #2차원으로 만들기
- randomforest #bagging #머신러닝 #하이퍼파라미터 튜닝
- #자연어 처리 #정수 인코딩 #빈도 수 기반
- #물고기 종류별 대어 찾기 #즐겨찾기가 가장 많은 식당 정보 출력하기 #mysql #programmers
글 보관함
최근에 올라온 글