ABC146 - Atcoder/Python精進のための解説メモ
2022/12/27
ABC146 - A.Can't Wait for Holiday
AtCoder公式 | ABC146 - A.Can't Wait for Holiday解答
s = input()
l = ['SUN', 'MON', 'TUE', 'WED', 'THU', 'FRI', 'SAT']
ans = 7 - l.index(s)
print(ans)
要点解説メモ
- index数に注意して、いい感じにやる
ABC146 - B.ROT N
AtCoder公式 | ABC146 - B.ROT N解答
u_alpha = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
l_alpha = 'abcdefghijklmnopqrstuvwxyz'
n = int(input())
ss = input()
ans = ''
for s in ss:
index = (u_alpha.index(s) + n) % 26
ans += u_alpha[index]
print(ans)
別解
n = int(input())
s = input()
ai = ord('A')
ans = ''
for i in s:
ei = ord(i) - ai
ei = (ei + n) % 26
ans += chr(ei + ai)
print(ans)
要点解説メモ
- アルファベット配列を手元に用意しておくと簡単でよい
- unicodeで大文字Aを基本にしつつ計算してもよい
ABC146 - C.Buy an Integer
AtCoder公式 | ABC146 - C.Buy an Integer解答
a, b, x = map(int, input().split())
def is_ok(n):
return a * n + b * len(str(n)) <= x
def m_bisect(ng, ok):
while abs(ok - ng) > 1:
mid = (ok + ng) // 2
if is_ok(mid):
ok = mid
else:
ng = mid
return ok
print(m_bisect(10 ** 9 + 1, 0))
要点解説メモ
- 全探索すると間に合わない
- めぐる式二分探索で検索だ
ABC146 - D.
AtCoder公式 | ABC146 - D.解答
まだ解いていません