[AtCoder]ABC042A ~ 046A[Python]

プログラミング

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には、このように様々な関数があるので、便利ですね。

タイトルとURLをコピーしました