ABC017を解いてみた
A問題
条件に従って処理して出力しました。
a, b = map(int, input().split()) c, d = map(int, input().split()) e, f = map(int, input().split()) #小数にならないことは保証されているので切り捨てとかは気にしないで大丈夫 print(int((a*b/10)+(c*d/10)+(e*f/10)))
B問題
場合分けして文字列の処理を行いました。
import sys x = input() flag = 0 for i in range(len(x)): # ch だったら2回分先に送る if flag == 1: flag = 0 continue # ch かどうかの確認のため if i != (len(x) - 1): s = x[i] + x[i+1] # o, k, u のいずれかであったらループを続ける if x[i] == 'o' or x[i] == 'k' or x[i] == 'u': continue # ch だったら2回分ループを回すよう flag=1 に elif s == 'ch': flag = 1 continue # どれでもなければchoku語ではないのでNOを出力して終了 else: print('NO') sys.exit() print('YES')
C問題
全探索の部分点解法しか思い浮かびませんでした。解説を読んでいもす法を用いた実装をしました。
D問題
動的計画法を使う部分点解法しか思い浮かびませんでした。しゃくとり法について蟻本で読んで実装しました。