hirohirohirohirosのブログ

地方国立大学に通う情報系学部4年

Atcoder ABC192,191 振り返り

A - Star【AC】

 100で割った余りを求めることで,100から溢れた数を求めることが出来ます.これを100で引く事によって,あといくつで100に到達するかを求めることが出来ます.

X = int(input())
print(100 - X%100)
B - uNrEaDaBlE sTrInG【AC】

 大文字判定は.isupper(),小文字判定はislower()で出来ます.for~else文を使うとスッキリ書くことが出来ます.

S = input()

for i in range(len(S)):
    if (i+1) % 2 == 0:
        if S[i].islower():
            print("No")
            break
    if (i+1) % 2 == 1:
        if S[i].isupper():
            print("No")
            break
else:
    print("Yes")
C - Kaprekar Number【AC】

 例えば,"123"に対して,list("123")とすると,["1", "2", "3"]と各文字を要素にしたリストになります.つぎに,["1", "2", "3"]を123という数字にしたいです.123=1*10^2 + 2*10^1 + 3*10^0という等式を利用します.1*10^2の2は"123"のlen=3から1引いた数字と分かります.そして,それを1ずつ引いていけば良さそうです.よって,["1", "2", "3"]を[100, 20, 3]というリストに変形し,それをsum()すれば,123になります.それを一行で表したのがg1, g2の行です.後はルールに沿って書けば解けます.

N, K = map(int, input().split())

for i in range(K):
    num_list = list(str(N))
    g1 = sum([int(v)*10**(len(num_list) - i-1) for i, v in enumerate(sorted(num_list)[::-1])])
    g2 = sum([int(v)*10**(len(num_list) - i-1) for i, v in enumerate(sorted(num_list))])
    
    N = g1 - g2

print(N)
A - Vanishing Pitch【AC】

 秒速Vmで進むボールはX秒後はXVm進んでます.これをつかってif文で判断します.

V, T, S, D = map(int, input().split())
print("No") if V*T <= D <= V*S else print("Yes")
B - Remove It【AC】

 全てのAの要素に対して,Xと等しくないなら新しいリストA'に格納します."○".join(["a", "b", "c"])とすると,a○b○cという文字列が返ってきます.つまり,""にある文字列をリストの各要素の間に挟んだ文字列が返ってきます.こうすると,リストをprintするときに, ["a", "b", "c"]と表示されるのを,a b cと表示することが出来ます..join()に入れるリストは,中身の要素が全てstrでないとエラーになるので気をつけます.

N, X = input().split()
A = list(input().split())
A_ = []

for a in A:
    if a != X:
        A_.append(a)
print(" ".join(A_))