AtCoder-ABC215 A - Your First Judge / B - log2(N)【Python解答例】
AtCoder Beginner Contest215のA とB問題についてPythonの解答例を記事にしていきます。
AtCoder Beginner Contest 215 - AtCoder
AtCoder Beginner Contest215 A - Your First Judge
問題文
文字列 S が与えられるので、この文字列が Hello,World! と完全に一致するなら AC 、そうでないなら WA と出力してください。
制約
・1 ≤ |S| ≤ 15
・S は英大小文字, ,, ! のみからなる
解答例
s = input() t = "Hello,World!" if s == t: print("AC") else: print("WA")
解説
与えられる文字列SがHello,World! と完全に一致するか答える問題です。
問題文に記載があるように「文字列 A と B が完全に一致するとは、文字列 A と B の長さが等しく、かつ全ての 1≤i≤|A| を満たす整数 i について A の先頭から i 文字目と B の先頭から i 文字目とが(英大文字か小文字かも含めて)一致することを指します。」が完全一致の条件ですが、Pythonでは == だけで比較できます。
したがって解答例のようにs == tならAC、違うならWAを出力すればOKでした。
AtCoder Beginner Contest215 B - log2(N)
問題文
正整数 N が与えられるので、 2k ≤ N となる最大の整数 k を求めてください。
制約
・N は 1 ≤ N ≤ 10^18 を満たす整数である
解答例
n = int(input()) if n == 1: print(0) else: for k in range(100): if pow(2,k) <= n: continue else: print(k-1) break
解説
N <=10^18 なので kは最大で60程度の値になります。
したがってi を(大きすぎですが)100までループさせて、2^iとnを比較します。
nより大きくなったときのi-1(n が 1のときは0)を出力すればOKです。
ABC215の関連記事はこちら
ebisuke33.hatenablog.com
ebisuke33.hatenablog.com