반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 상한가
- java
- Programmers
- 급등주 분석
- Python
- 이진우의 손에 잡히는 경제
- 손경제
- boj
- 경제뉴스
- 프로그래머스
- 주식 상한가
- 상한가 분석
- 손에 잡히는 경제 요약
- 백준
- 상한가 이유
- 손경제 요약
- 코딩테스트
- 손에 잡히는 경제
- 이진우
- 알고리즘
- 파이썬
- 급등 이유
- 자바
- 급등주
- 주식 분석
- 코테
- 경제
- 테마주
- 주식
- 경제뉴스 요약
Archives
- Today
- Total
Completion over Perfection
프로그래머스 - 안전지대 (파이썬3 Python3) 본문
반응형
https://school.programmers.co.kr/learn/courses/30/lessons/120866
지뢰가 있는 지역을 중심으로 8방향을 모두 위험지역으로 체크해주고,
안전한 지역을 세서 답으로 출력해주면 됩니다.
다만 주의할 점은 예를 들어 첫번째 예시에서 4X3 지역에 지뢰가 설치되어 있는데요,
이 주변 구역을 돌면서 지뢰가 있는 8방향을 숫자 1로 바꿔버린다면
다음 for문을 돌때 1로 갱신된 지역이 마치 원래 지뢰가 있었던 지역처럼 인식되어 버린다는 점을 주의해야 합니다.
그래서 저는 isVisited라는 boolean 배열을 별도로 선언해주고,
(지뢰가 있건 없건) 해당 구역을 방문했는지 안했는지에 대해 체크해주고,
나중에 답을 도출할 때는 isVisited 배열을 기준으로 안전한 구역을 세 주었습니다.
코드 참고해주세요.
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
32
33
|
dx = [1, 1, 1, -1, -1, -1, 0, 0]
dy = [1, 0, -1, 1, 0, -1, 1, -1]
def mark(x, y):
global map
global isVisited
for i in range(8):
nx = x + dx[i]
ny = y + dy[i]
if nx<0 or ny<0 or nx>=len(map) or ny>=len(map[0]) or isVisited[nx][ny] == True:
continue
else:
isVisited[nx][ny] = True
def solution(board):
global map
global isVisited
map = board
isVisited = [[False for i in range(len(board[0]))] for j in range(len(board))]
answer = 0
for i in range(len(map)):
for j in range(len(map[0])):
if map[i][j] == 1:
isVisited[i][j] = True
mark(i,j)
for i in range(len(isVisited)):
for j in range(len(isVisited[0])):
if isVisited[i][j] == False:
answer += 1
return answer
|
cs |
반응형
'파이썬 (Python)' 카테고리의 다른 글
프로그래머스 - 신고 결과 받기 (파이썬3 Python3) (0) | 2023.08.26 |
---|---|
프로그래머스 - 연속된 수의 합 (파이썬3 Python3) (0) | 2023.08.25 |
프로그래머스 - 무인도 여행 (파이썬3 Python3) (0) | 2023.08.20 |
프로그래머스 - 최고의 집합 (파이썬3 Python3) (0) | 2023.08.19 |
프로그래머스 - 추억 점수 (파이썬3 Python3) (0) | 2023.08.15 |
Comments