初めてのAtCoder(ABC 283)
今回は初めてのプログラミングコンテスト、AtCoderに挑戦したのでそれについて書いてみようと思います。
そもそもAtCoderとは?
AtCoderとは、いわゆるプログラミングコンテストを行うサービス、あるいは会社のことです。AtCoderの中にはいくつかコンテストがあるのですが、今回はAtCoder Beginner Contest(ABC)という初心者向けのコンテストに参加しました。以下では、触れられた問題を書いていこうと思います。
A問題
整数 A, Bが 与えられたときにA^B の値を出力してください。
A, B = map(int, input().split())
print(A ** B)
1mmぐらいはひねったやつ来るかと思ったら全くだった()
B問題
ここからはめんどくさいんで、問題はリンク先で見てもろて()
# 入力
N = int(input())
A = list(map(int, input().split()))
Q = int(input())
# クエリに答える
for i in range(0, Q):
query = list(map(int, input().split()))
if query[0] == 1:
A[query[1] - 1] = query[2]
else:
B = query[1]
print(A[B - 1])
クエリは触りしかやってなかったので、やばい()と思ったけど、割と何とかなった
最後らへんのB=~の部分は無駄ですね
C問題
# 入力
S = int(input())
counter = 0
while S > 0:
if (S % 10) == 0:
if (S % 100) == 0:
S //= 100
counter += 1
else:
S //= 10
counter += 1
else:
S //= 10
counter += 1
print(counter)
問題としては理解しやすかったけど、TLEになっちゃいました。見返すと確かに1つ目、2つ目のifは逆の方が計算量減りそう?って思ったけど、試してそれもTLEだった()
終わって
初の参加で途中はお風呂にも入った(D問題以降は解けると思ってなかった)ので、まあしっかりやれたって訳じゃないですが、本番の環境でやるのは面白かったです。年明けもちょこちょこ参加してとりあえずはレートが確定する5回前後はやりたいな~と思ってます。それではまた~