なんでアルゴリズム
日課としてるpaizaのスキルチェックでBランクで時間内にとけない問題が散見してきたので、アルゴリズムの学び直しを日課に追加したので復習用をかねての備忘録
この歳まで見てみないふりしてきた貧弱なアルゴリズム基礎体力をこれを機に人並みくらいにはあげたい。
日課
- Udemyでデータ解析のお勉強
- UdemyでReactのお勉強
- freeCodeCampでJavaScriptのお勉強
- paizaでスキルチェック
- AIZU ONLINE JUDGEのコースでアルゴリズムのお勉強(new!)
最大公約数(Greatest Common Divisor)
最大公約数を求めるアルゴリズムですね。
ユークリッド互除法の実装。
計算量は、O(logN)
def gcd(x, y):
if y == 0:
return x
return gcd(y, x%y)
if __name__=='__main__':
# 標準入力から最大公約数を算出する2値を取得する
x, y = map(int, input().split())
if y > x:
x, y = y, x
result = gcd(x, y)
# 結果を出力
print(result)