初めての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回前後はやりたいな~と思ってます。それではまた~


いいなと思ったら応援しよう!