4
2

More than 3 years have passed since last update.

AtCoderに初心者が初挑戦する

Last updated at Posted at 2021-04-17

おすすめされたこのぺージの問題を挑戦していきたいと思います。

ほとんど初心者なので、試行錯誤したこーどすべてをのせていきたいとおもいます。
競技プログラミング1日目!
1か月じっくりやってビギナーコンテストをクリアできるようになるのが目標です!
今回は三問やっていきます。
今日(21/04/17)のビギナーコンテストは腕試しとして挑戦したいと思っています。
来月にはどのくらい延ばせるのかがんばります・

1問目

image.png
これは基本の問題なのでしょう。とかんじました 

a,b =map(int ,input().split())
#print(a,b)
#掛け算
c =a * b 
if c % 2 == 0:
  print("Even")
else:
  print("Odd")

2問目

image.png
素直に一つずつ確かめていきました。

s =input()
counter = 0
if s[0] == str(1):
  counter =+ 1
if s[1] == str(1):
  counter +=1
if s[2] == str(1):
  counter +=1

print(counter)

3問目

問題文
黒板に N 個の正の整数
A,...,N が書かれています.

すぬけ君は,黒板に書かれている整数がすべて偶数であるとき,次の操作を行うことができます.

黒板に書かれている整数すべてを,
2で割ったものに置き換える.
すぬけ君は最大で何回操作を行うことができるかを求めてください
というものでした。

自分の中では 繰り返し(リストの中身をすべて2で割る→もし余りがなければもう一回、余りが出れば終わり)という流れを描いていました。
いざやってみるとなんかうまくいかずに試行錯誤しました
割り算とあまりの関数を作ってあげてそこに当てはめていく感じで解きました

import math
n = input()
a = list(map(int, input().split()))
count=0
#print(n,a)
def double(n):
  return n / 2
def amari(n):
  return n % 2
data1=[]
data2 =[]
data2 = list(map(amari,a))
#print(data2)
data3=[]
data3=list(map(double,a))
#print(data3)
#print(all(elem % 2 == 0 for elem in a))
#for i in a:
#for i in a だと試行数がa以上のものができなかった(?)
i=0
while i < 8:
#i < 10 にするとREで謎のエラーが出た。
    if all(elem % 2 == 0 for elem in a):
      a=list(map(double,a))
#      print(a)
      count =count + 1
#      print(count)
    else:
      count=count
      break

#print(a)
print(count)

いろいろ試行錯誤しているのが読み取れると思います。
1,2問目と違って一気に難しくなったと感じました。
コードを書くのに一時間くらいかかってます。

4
2
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
4
2