宥利を奉ずる.
6689 ワード
ナビゲーション&シミュレーション(文字列、1 Dおよび2 Dリストナビゲーション)
に質問
宥利を奉ずる。
地図情報にはN*Nメッシュが付与されます.各メッシュには、その領域の高さが含まれています.各グリッドボードの数字のうち、上下左右の数字より大きいのがピーク領域です.いくつのピーク地域があるかを知るプログラムを作成してください.
メッシュのエッジをゼロに初期化するとします.
n=5で、メッシュボードの数字が以下の場合、ピークの個数は10となります.
■説明の入力
最初の行は自然数Nを与える.(1<=N<=50)
2行目から、行ごとにN個の自然数があります.各自然数は100を超えない.
■出力説明
ピークの個数をプリントアウトしてください.
■入力例1
5
5 3 7 2 3
3 7 1 6 1
7 2 5 3 4
4 3 6 4 1
8 7 3 5 2
■出力例1
10
コード#コード#💻
import sys
# sys.stdin=open("input.txt", "rt") # read text
'''
탐색
x : 행
y : 열
'''
dx = [-1, 0, 1, 0] # 12시, 3시, 6시, 9시 방향
dy = [0, 1, 0, -1] # 12시, 3시, 6시, 9시 방향
n = int(input())
a = [list(map(int, input().split())) for _ in range(n)] # 2중 리스트
a.insert(0, [0]*n) # 맨 위 행에 0으로 초기화된 행 삽입
a.append([0] * n) # 맨 아래 행에 0으로 초기화된 행 삽입
for x in a:
x.insert(0, 0) # 각 행 왼쪽에 0 추가
x.append(0) # 각 행 오른쪽에 0 추가
cnt = 0
for i in range(1, n + 1):
for j in range(1, n + 1):
if all(a[i][j] > a[i+dx[k]][j+dy[k]] for k in range(4)): # 조건식이 참이면 참
cnt += 1
print(cnt)
リファレンスReference
この問題について(宥利を奉ずる.), 我々は、より多くの情報をここで見つけました https://velog.io/@jsj3282/봉우리テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol