見出し画像

python練習問題

pythonでアルゴリズム問題を解いたので共有したいと思います。
問題は下記のようなものです。

1問目

問題
入力方法

解き方

まずは、#の数がいくつあるのかを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問目

問題
出力例
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

以上になります。


この記事が参加している募集

この記事が気に入ったらサポートをしてみませんか?