ユニークビジョンプログラミングコンテスト2022 冬(AtCoder Beginner Contest 283)の解説記事です。
ABC283 A – Power
問題
問題文の要約は以下の通りです。
問題の要約
整数 \(A\), \(B\) を与えたとき、\(A^B\) を求めよ。
入力
\(A\) \(B\)
出力
\(A^B\)を出力せよ。
解説1
for 文を用いて答えに \(A\) をかけるという操作を \(B\) 回行う。
解説
まず、答えをAns=1として初期化しておきます。これに \(A\) をかけるという操作を \(B\) 回行います。
for文はfor _ in range(B):と書くことができます。変数_は何でも構いません。ここでは_(アンダーバー)を使用しています。
答えAnsに \(A\) をかける操作はAns*=Aと書けます。Ans=Ans*Aと同じです。
解答
# 入力
A, B = map(int, input().split())
# 答えの初期値
Ans=1
# A を B 回掛ける
for _ in range(B):
Ans*=A
# 出力
print(Ans)解説2
\(A^B\) を求める演算子や関数を用いる
解説
Pythonで\(A^B\) を求めるにはA**Bやpow(A, B)を使えば簡単に求められます。
解答1
# 入力
A, B = map(int, input().split())
# 出力
print(A**B)解答2
# 入力
A, B = map(int, input().split())
# 出力
print(pow(A,B))ABC283 B – First Query Problem
問題
問題文の要約は以下の通りです。
問題の要約
整数 \(N\) と長さ \(N\) の数列 \(A = (A_1, A_2, \cdots , A_N )\) が与えられます。
以下の \(Q\) 個のクエリを処理せよ。
・1 k x : \(A_k\) の値を \(x\) に変更する。
・2 k : \(A_k\) の値を出力する。
入力
\(N\)
\(A_1\) \(A_2\) \(\cdots\) \(A_N\)
\(Q\)
\(quary_1\)
\(quary_2\)
\(\vdots\)
\(quary_Q\)
\(quary_i\) は以下のいずれかの形式
\(1\) \(k\) \(x\)
\(2\) \(k\)
出力
2 番目の形式のクエリの解答を出力せよ。
解説
list で数列を管理してクエリを処理する。
解説
まず入力 \(N\) をint型、数列 \(A\) をlist型、 \(Q\) をint型として受け取ります。
# 入力
N=int(input())
A=list(map(int,input().split()))
Q=int(input())\(Q\) 個のクエリを順に処理します。
まず、クエリをlist型で受け取ります。query=list(map(int,input().split()))
クエリの1つ目の項目query[0]が1か2で場合分けします。1 k x の形式であれば A[query[1]-1] 値を query[2] に変更する。2 k の形式であればA[query[1]-1]を出力します。
# クエリ
for _ in range(Q):
query=list(map(int,input().split()))
# 1 k x : A_k 値を x に変更する
if query[0]==1:
A[query[1]-1]=query[2]
# 2 k : A_k 値を出力する
if query[0]==2:
print(A[query[1]-1])解答
# 入力
N=int(input())
A=list(map(int,input().split()))
Q=int(input())
# クエリ
for _ in range(Q):
query=list(map(int,input().split()))
# 1 k x : A_k 値を x に変更する
if query[0]==1:
A[query[1]-1]=query[2]
# 2 k : A_k 値を出力する
if query[0]==2:
print(A[query[1]-1])ABC283 C – Cash Register
問題
解説
00の個数をカウントする。
解説
\(S\) の桁数から00の個数を引いたものが答えになります。
# 入力
S = input()
# 出力
print(len(S) - S.count("00"))解答
# 入力
S = input()
# 出力
print(len(S) - S.count("00"))
