ユニークビジョンプログラミングコンテスト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"))