宥利を奉ずる.
11378 ワード
作成日:2022年1月13日午後6:53
私が実装したコードでは,上下左右の値を確認するために長いif文を記述したが,模範解答ではall()を用いて括弧中のすべての式が本当かどうかを調べるために簡単に1つのコードを記述した.
インプリメンテーションコード
# 봉우리
import sys
sys.stdin = open("input.txt", "rt")
n = int(input())
m = [list(map(int, input().split())) for _ in range(n)]
for x in m:
x.append(0)
x.insert(0,0)
m.append([0]*(n+2))
m.insert(0, [0]*(n+2))
res = 0
for i in range(1, n+1):
for j in range(1, n+1):
mine = m[i][j]
if m[i-1][j] < mine and m[i][j-1] < mine and m[i][j+1] < mine and m[i+1][j] < mine:
res += 1
print(res)
模範解答
import sys
#sys.stdin = open("input.txt", 'r')
dx=[-1, 0, 1, 0]
dy=[0, 1, 0, -1]
n=int(input())
a=[list(map(int, input().split())) for _ in range(n)]
a.insert(0, [0]*n)
a.append([0]*n)
for x in a:
x.insert(0, 0)
x.append(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/@lsj8706/봉우리テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol