AtCoderで茶色を目指す 14日目

7:00起床。ブログを書こうと思ったら、今週のお題みたいなところに、「最近、しばいてる?」と言うワードがあり驚愕しています。文面はこれだけど、お茶に関するお題見たいです。
しばいてるって何だ???

目標

コンテスト受けます!それまでに、チュートリアルを進めます。できたら、終わらせて問題を解きまくるフェーズに入りたい。

備忘録

ビット計算をしたい

atcoder.jp

こちらの問題を解いているときにぶつかった壁です。pythonでビット計算する方法とか知らんってなったので、備忘録行きです。

note.nkmk.me

こちらのサイトを参考にさせて頂きました。どうも、ビット演算子なるものがあるということです。

やりたいことは排他的論理和を使う必要があるの、その使い方だけ残しておきます。
排他的論理和(xor)を使う場合は、^演算子を使います。

a,b= 3,6
print(a^b)
# 5

 

小数点の切り上げ

atcoder.jp

こちらの問題を解いているときに、小数点の切り上げをしたいってなりました。

note.nkmk.me

こちらのサイトを参考に切り上げの方法を残しておきます。

mathモジュールのmath.ceil()を使います。ceil=天井ってことですね。

import math
print(math.ceil(10.5)) #11

小数点以下が切り上げられて、int型が返されます。

 

次のアルファベットは何かatcoder.jp

タイトル通り、入力された英小文字に対して、アルファベット順で次にくる英小文字を出力する問題です。「どうやんねん」とエセ関西弁が出た挙句、次のコードを使って無理矢理と解きました。

c = input()
a = ["a","b","c","d","e","f","g","h","i","j","k","l",
"m","n","o","p","q","r","s","t","u","v","w","x","y","z"]
print(a[a.index(c)+1])

頑張った!じゃなくて、めんどくさい!

もっと簡単にできるんじゃねと思い調べました。

qiita.com

こちらのサイトを参考にしました。ordとchrというのを使うと良いらしいです。

c = "a"
ord_c=ord(c) #97
print(chr(ord_c+1)) #b

短くなりました。満足です。

ord(文字)で文字をACCIIコードに変換しています。次に、chr(数字)でASCIIコードを文字に変換しています。

反省

チュートリアルは修了しました。次はこちらのサイトから過去問をA→B→Cと解いていこうと思います。

コンテストも受けました。しんどかったです。感想は次回のブログに書きます。

参考サイト

A - Bitwise Exclusive Or

Pythonのビット演算子(論理積、論理和、排他的論理和、反転、シフト) | note.nkmk.me

A - Takoyaki

Pythonで小数点以下を切り捨て・切り上げ: math.floor(), math.ceil() | note.nkmk.me

A - Next Alphabet

【Python】文字列と数値(asciiコード)の変換まとめ - Qiita

https://kenkoooo.com/atcoder#/table/