しまたくブログ

ガジェット、プログラム、新技術、e-sports(ゲーム)のことをツラツラと書きます。

AtCoder Beginners Selection過去問精選10問をPythonで解いていく

皆様こんばんわ。

 

本日は、レベルアップのため&半年~1年後の転職を見据えて、つい先日始めようと思い立ち登録してみたAtCoderという競技プログラミングの過去問を解いていきます。

まだ問題3を解いている最中なのでpartが複数に分かれるのですが優しい目で見て頂けると幸いです。

 

第 1 問: ABC 086 A - Product (100 点)

https://atcoder.jp/contests/abs/tasks/abc086_a

問題文

シカのAtCoDeerくんは二つの正整数 a,b を見つけました。 a と b の積が偶数か奇数か判定してください。

#入力
a, b = map(int, input().split())

#奇数*奇数のみodd
if a%2!=0 and b%2!=0 :
  print('Odd')
else:
  print('Even')

結構シンプルに出来たのではないでしょうか?

2つの自然数の積が奇数になる場合は、「奇数*奇数」の場合のみのため上記のように奇数のときのみ"Odd"の出力を出すようにしました。

 

第 2 問: ABC 081 A - Placing Marbles (100 点)

https://atcoder.jp/contests/abs/tasks/abc081_a

問題文

すぬけ君は 1,2,3 の番号がついた 3 つのマスからなるマス目を持っています。 各マスには 0 か 1 が書かれており、マス i には si が書かれています。

すぬけ君は 1 が書かれたマスにビー玉を置きます。 ビー玉が置かれるマスがいくつあるか求めてください。

#入力
a, b, c = map(int, input() )

#2進数を10進数変換//入力を1桁ずつ足し算したらいいのでは?
print(a+b+c)

正直な話このロジックはちょっとインチキでPassさせたような気がしています。

挙動上間違ってはないが、なんというか…って感じ(笑)

練習問題なんでサクッと進むことにしました。

 

以上、めっちゃ適当な解説な気もしますが、まだブログの書き方に慣れてないということで大目に見てください。これからMarkdown記法も勉強していきます。

 

以上!