過去問精選 10 問やってみる 3

前回までで10選を解きました。

今回は例題を解いて本当に理解してるか確かめます。

****************************************************

ABC 064 A - RGB Cards (同じく倍数判定です)
https://atcoder.jp/contests/abc064/tasks/abc064_a
受けた文字列を数値に置き換えて各桁かけて計算

a, b, c = list(map(int, input().split()))
if (a*100+b*10+c) % 4 == 0:
  print('YES')
else:
  print('NO')


ABC 088 A - Infinite Coins (倍数判定の発展として、余りを計算します)
https://atcoder.jp/contests/abc088/tasks/abc088_a
入力値にmod 500をとって余りをもとめ、それがAより多いか少ないか確認する

N = int(input())
A = int(input())

if (N % 500) <= A:
  print('Yes')
else:
  print('No')


ABC 082 A - Round Up the Mean (余りを切り上げる処理をします)
https://atcoder.jp/contests/abc082/tasks/abc082_a
入力を足して2で割る際に、分子に+1しておくことでパターン化できる

a, b = map(int, input().split())
print((a+b+1)//2)

****************************************************

ABC 095 A - Something on It (非常によく似た問題です)
https://atcoder.jp/contests/abc095/tasks/abc095_a
for文で回して〇が出たら100足すだけ

S = input()
price = 700
for i in S:
  if i == "o":
    price += 100
print(price)


ABC 085 A - Already 2018 (string 型を扱う練習です)
https://atcoder.jp/contests/abc085/tasks/abc085_a
受けた文字列の最初だけ固定値を入れる

S = input()
print("2018"+S[4:])


ABC 069 B - i18n (B 問題ですが for 文不要で難しくなく、string 型を扱うよい練習問題です)
https://atcoder.jp/contests/abc069/tasks/abc069_b
最初と最後を抜き出し、それ以外の配列の個数を数えて表示

S = input()
print(S[0] + str(len(S)-2) + S[-1])

ABC 082 B - Two Anagrams (辞書順最小に関する理解を問います、B 問題なので少し難しくなります、下に出て来るソートも使います)
https://atcoder.jp/contests/abc082/tasks/abc082_b
完全にはまりました・・・
「可能な組み合わせ」なので、事前に文字列をソートしておくが、片方だけ昇順もう片方は降順としておく必要あり

a = sorted(input())
b = sorted(input(), reverse=True)
aa = ''.join(a)
bb = ''.join(b)
if aa < bb:
  print('Yes')
else:
  print('No')


以上