J'étais en train de résoudre la collection de problèmes de niveau supérieur de Paiza, mais je n'avais pas de réponse modèle, alors je l'ai fait moi-même. Le langage est Python3.
Exemple de problème de vérification des compétences de Paiza "Recherche d'île (équivalent au rang S de paiza)" https://paiza.jp/works/mondai/skillcheck_sample/search-island?language_uid=python3 Je ne pouvais pas voir l'énoncé du problème sans me connecter. L'inscription est gratuite et peut être effectuée immédiatement, je vous recommande donc de vous inscrire pour le moment.
find_lands.py
col, row = map(int, input().split())
map_list = [[0]* (col+2)]
for _ in range(row):
map_list.append([0] + list(map(int, input().split())) + [0])
map_list.append(map_list[0])
def check(x, y):
lands = [[x,y]]
while lands:
x, y = lands.pop()
map_list[y][x] = 0
# down
if map_list[y+1][x] == 1:
lands.append([x, y+1])
# right
if map_list[y][x+1] == 1:
lands.append([x+1, y])
# up
if map_list[y-1][x] == 1:
lands.append([x, y-1])
# left
if map_list[y][x-1] == 1:
lands.append([x-1, y])
count = 0
for r in range(1, row+1):
for c in range(1, col+1):
if map_list[r][c] == 1:
check(c, r)
count += 1
print(count)
https://maro28.com/paiza-s-rank-mod7
J'ai écrit un article sur Qiita au début, mais il devrait être simple et facile à utiliser! J'espère pouvoir l'utiliser à partir de maintenant.
Recommended Posts