반응형
문제설명
4 x 4 크기 격자 모양 지형에 위험 지역이 몇 개인지 알고 싶습니다. 위험지역이란 동, 서, 남, 북 인접한 지역이 모두 해당 지역보다 높은 지역입니다. 예를 들어 지역 높이가 아래와 같다면 빨간 영역은 인접한 지역이 모두 해당 지역보다 높은 위험지역입니다.
지역별 높이가 담긴 2차원 리스트 height가 solution 함수의 매개변수로 주어질 때, 위험 지역이 몇 개인지 return 하도록 solution 함수를 완성해주세요.
매개변수 설명
지역별 높이가 담긴 2차원 리스트 height가 solution 함수의 매개변수로 주어집니다.
* 각 지역의 높이는 1 이상 50 이하인 자연수입니다.
return 값 설명
위험지역이 몇 개인지 return 해주세요.
예시
| height | return |
|----------------------------------------------------------|--------|
| [[3, 6, 2, 8], [7, 3, 4, 2], [8, 6, 7, 3], [5, 3, 2, 9]] | 5 |
예시설명
문제에 나온 예와 같습니다.
문제 코드
def solution(height):
#여기에 코드를 작성해주세요.
count = 0
return count
풀이
def solution(height):
count = 0
# dx, dy의 원소는 각각 서, 동, 남, 북을 의미
dx = [-1, 1, 0, 0]
dy = [0, 0, -1, 1]
# 지역의 x, y 좌표값 i, j에 대하여
for i in range(4):
for j in range(4):
is_danger = True
for k in range(4):
# 해당 지역의 동서남북이 존재하고,
# 해당 지역의 동서남북 중 한 곳이라도 해당 지역보다 낮으면 위험지역이 아님
if 0 <= i+dy[k] < 4 and 0 <= j+dx[k] < 4 and height[i][j] >= height[i+dy[k]][j+dx[k]]:
is_danger = False
if is_danger:
count += 1
return count
댓글