【AtCoder】ABC283解説(Python)

ユニークビジョンプログラミングコンテスト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**Bpow(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]12で場合分けします。
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"))
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次