見出し画像

atcoder問題集

atcoderの問題を前解いていたのでそのコードを共有したいと思います。

勉強記録として残します。

from unittest import result

def Sample1():
    """
    配列の操作
    入力した数値を何回2で割る事が出来るのか?
    """
    # 入力するデータの個数
    N = int(input())
    # サイズNの配列Aへの入力
    A = list(map(int,input().split()))
    counter = 0 # 操作回数
    
    while True# Trueの間ループする。
        can_do = True
        for i in range(N):
            if A[i] % 2 == 1:
                can_do = False
        
        if not can_do: # Falseの場合
            break
        
        for i in range(N):
            A[i] //= 2
        counter += 1
    print(counter)
# Sample1()

def Sample2():
    """
    A以上B以下の整数の中にKの倍数があるかどうか
    """
    K = int(input())
    A, B = map(int, input().split())
    ext = False
    for i in range(A, B + 1): # A からBをループする。
        if i % K == 0# 倍数があった場合フラグをTrueにする。
            ext = True
    if ext == True:
        print('OK')
    else:
        print('NG')
# Sample2()

def Sample3():
    # 整数nの各桁の和を求める関数
    def sum(n):
        sum_1 = 0
        while n > 0# nが0以下になるまでループする。
            sum_1 += n % 10 # 1の位を求める
            n //= 10
        return sum_1
    N, A, B = map(int, input().split())
    result = 0
    for i in range(1, N + 1):
        if A <= sum(i) <= B: # A以上B以下
            result += i
    print(result)
# Sample3()
def Sample4():
    """
    お金の枚数を計算する。
    """
    N, Y = map(int, input().split()) # 入力する。Nが枚数Yが金額
    a, b, c = -1-1-1
    # 全探索
    for i in range(N + 1):
        for j in range(N + 1):
            n = N - i - j
            if n < 0 or n > N: # nが0以上N以下でない場合はスキップ
                continue
            if 10000 * i + 5000 * j + 1000 * n == Y: # 条件を満たすのか確認する。
                a, b, c = i, j, n
    print(f'1万円札{a}枚5千円札{b}枚千円札{c}枚')
# Sample4()

def prime_number():
    num = int(input('数値入力'))
    if num <= 1# 素数ではない
        print(False)
    else:
        for i in range(2, int(num**0.5)+1):
            if num % i == 0# 0になったらFalseを返す。
                print(False)
                break
        else:
            print(True)
# prime_number()
def Sample6():
    num = int(input('数値入力'))
    cnt = 0
    for i in range(2, int(num**0.5)+1):
        cnt += i
    print(cnt)
# Sample6()

def Sample7():
    """
    周期性
    入力例 A B C K
    操作をK回行う
    そしてA-Bをした整数を出力する。
    """
    A, B, C, K = map(int, input().split())
    print(A - B if K % 2 == 0 else B - A)
# Sample7()

def Sample8():
    """
    旅行プラン
        T秒後に(x,y)に移動できるのかどうか
    入力例:
        2
        3 1 2
        6 1 1
    出力例:
        yes
    """
    def solve():
        N = int(input('プラン数'))
        pt, px, py = 000 # 前回の時刻と座標を表す変数
        for i in range(N):
            t, x, y = map(int, input().split()) # 移動先の情報を受け取る
            T, X, Y = t - pt, abs(x - px), abs(y - py) # 前回の状態と差分を取るabs→(絶対値)
            if T < X + Y: # 間に合わない時は不可能
                return False 
            if T % 2 != (X + Y) % 2:
                return False
            pt, px, py = t, x, y
        return True # 最後まで到達した時
    print('Yes' if solve() else 'NO'# returnでTrueの場合はYes,Falseの場合はNo
# Sample8()
def Sample9():
    """
    N個の整数が並んでいてN個の整数の総和として考えられる最大値を求める
        入力例
            3
            -10 5 4
        出力例
            19
    """
    N = int(input())
    A = list(map(int, input().split())) # 入力はリストにする。
    num_minus = sum(v < 0 for v in A) # マイナスの個数を求める。sumを使用して合計を求める。
    
    sum_abs = sum(map(abs, A)) # N個の絶対値の総和と最小値
    min_abs = min(map(abs, A))
    if num_minus % 2 == 0# マイナスが偶数の場合
        print(sum_abs)
    else# マイナスが奇数の場合
        num = sum_abs - min_abs
        print(num)
# Sample9()
def Sample10():
    """
    入力した数値にいくつ素数がいくつ出るのか?
    """
    num = int(input())
    prime = []
    for i in range(2, num + 1):
        for j in range(2, i):
            if i % j == 0:
                break # 0で割れた場合はjのfor文を抜ける。
        else:
            prime.append(i) # 0にならなかった場合にリストに追加する。
    print(prime)
# Sample10()
def Sample11():
    """
    九九の表示
    """
    for i in range(110):
        for j in range(110):
            num = i * j
            if num >= 10:
                print(num, end=" ")
            else:
                print(num, end="  ")
        print()
Sample11()

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