見出し画像

Python基礎練習④

Pythonの問題をネットで解いたのでnoteで勉強記録として共有致します。
是非勉強の材料にしてください。

✅問題①

最大公約数を求めてください。

与えられる数字
147 105

期待する出力
21

下記画像を参照

解答コード

def Sample10():
    n, m = (int(x) for x in input().split())
    print(math.gcd(n,m))
Sample10()

✅問題②

次は難問です。

ランダムの数字を小さい数字から並び替える処理になります。

下記の画像を参考にしてください。

問題画像

解答コード

解答例①

def Sample8():
    """解答例1"""
    N = int(input())
    K = list(map(int, input().split()))
    for i in range(0,N):
        v = K[i] # リストの0番目を取得
        j = i - 1
        while j >= 0 and K[j] > v:
            K[j+1] = K[j]
            j-= 1
        K[j+1] = v
        print(*K)
Sample8()

解答例②

def Sample8():
    """解答例2"""
    N = int(input())
    A = list(map(int, input().split()))
    for i in range(1, N + 1):
        A[:i] = sorted(A[:i])
        print(*A)
Sample8()

複数の解答があるので抑えておきましょう。

②の方が短いので分かりやすいと思います。

説明

①for文では1からループをしてsortedを使用して並び替えています。

②*を使用することで全てのデータを表示することが出来ます。

③[:i]で先頭から全てのリストのデータを表示する。

以上になります。




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

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