PythonでAtCoderの過去問を解いていきます。
ABC042A – 和風いろはちゃんイージー/IrohaandHaiku
自分の回答
a, b, c = map(int, input().split())
iroha = [a, b, c]
if iroha.count(5) == 2 and iroha.count(7) == 1:
print("YES")
else:
print("NO")
リスト(iroha)に入れて、count関数を使って、5が2つ、7が1つ含まれている時は、YESを出力します。
ABC043A – キャンディーとN人の子供イージー /Children and Candies
自分の回答
N = int(input())
ans = (1 + N) * N / 2
print(int(ans))
累積和を求める問題ですね。
ABC044A – 高橋君とホテルイージー
自分の回答
N = int(input())
K = int(input())
X = int(input())
Y = int(input())
if N <= K:
print(N * X)
else:
print(K * X + (N - K) * Y)
宿泊費が変わるK泊目よりも宿泊数Nが少ない時は、そのまま、宿泊数NにXをかければ良いです。
宿泊費が変わるK泊目よりも宿泊数Nが多い時は、宿泊費が変わる日数KにXをかけ、残りの宿泊数(N-K)にYをかけます。
ABC045A – 台形
自分の回答
a = int(input())
b = int(input())
h = int(input())
print(int((a + b) * h / 2))
台形の面積を求めればいいですね。台形の面積は(上辺+下辺)✖️高さ÷2です。
ABC046A – AtCoDeerくんとペンキ
自分の回答
paints = list(map(int, input().split()))
print(len(set(paints)))
リスト内の重複を削除するためにはset関数を使います。pythonには、このように様々な関数があるので、便利ですね。