![見出し画像](https://assets.st-note.com/production/uploads/images/92375962/rectangle_large_type_2_63ff971248be7f617f5683d1391282bd.png?width=1200)
python練習問題
pythonでアルゴリズム問題を解いたので共有したいと思います。
問題は下記のようなものです。
1問目
![](https://assets.st-note.com/img/1669881568622-iYpnoodz2H.png?width=1200)
![](https://assets.st-note.com/img/1669881624919-8FqSNUf6wf.png?width=1200)
解き方
まずは、#の数がいくつあるのかをfor文で確認して#が存在していたら1を足してあげるという処理です。
まずは、配列を用意してあげます。
[0, 0, 0, 0] # 配列用意
上記の配列に#が現れたら1ずつ足していきます。
下記が解答コードになります。
n, m = map(int, input().split())
n_lst = [input()for _ in range(n)]
cnt = [0] * m # 配列を用意する
ans = 0
for i in n_lst:
for j in i:
if j == '#': # 存在していたら1を足す
cnt[ans] += 1
ans += 1
ans = 0
print(*cnt)
2問目
![](https://assets.st-note.com/img/1669884011900-7Ws9Skh88u.png?width=1200)
![](https://assets.st-note.com/img/1669884055649-CSBOMVltiD.png?width=1200)
n = int(input())
n_lst = [int(input())for _ in range(n)]
ans = 0
for i in n_lst:
for j in range(1, i):
if i % j == 0:
ans += j
n_v1 = ans - i
if n_v1 == 0:
print('perfect')
elif abs(n_v1) == 1:
print('nearly')
else:
print('neither')
ans = 0
以上になります。
この記事が参加している募集
この記事が気に入ったらサポートをしてみませんか?