0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

atcoder練習(2024.12.08)

Posted at

改めて自分が初心者なのかどうかを検証する意味で「AtCoder に登録したら次にやること ~ これだけ解けば十分闘える!過去問精選 10 問 ~」を解く。これができれば、初心者よりちょっと一歩先にいることは確かだ。

問題1

全体的に長くなるので割愛。要約されたものが↑のリンクに記載されている。

回答

a, b = map(int, input().split())

if a*b % 2 == 0:
  print("Even")
else:
  print("Odd")

備考

  • これはやったことある。提示されているものとアルゴリズムは同じだから問題ないと思う。

問題2

回答

s = input()
k = 0

for i in s:
  i = int(i)
  k += i
print(k)

備考

  • これも比較的簡単にできた。
  • ただし、提示された回答を見ると、forを使ってない。確かにforがなくてもかける。この場合だと全探索でいける。確かにforの方が汎用性は高いが、汎用性を志向する必要はない。問題に対して過不足なく処理することができれば、それで十分

問題3

回答

import numpy as np

n = int(input())
a = list(map(int, input().split()))
a = np.array(a)
k = 0

while np.all(a % 2 == 0):
    a = a / 2  
    k += 1

print(k)

備考

  • 初めてnumpyを使った。pythonだけでやると、a[i]みたいな感じでforループがかなり多くなって、実行時間が超過した。ライブラリ便利だな。
  • 一方で描き終わったタイミングで気づいたけど、pythonだけでもanyである程度同じように書ける。やっぱり知っていることは大事。そしてその知識と動作を正確に結びつけることが重要。
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?