AtCoder初心者 DailyTrainingメモ②
AtCoder Python DailyTraining
ABC265 B-問題
問題文
洞窟は N 個の部屋が一列に並んだ構造で洞窟内には M 個のボーナス部屋があります。i 番目のボーナス部屋は部屋 X であり、この部屋に到達すると持ち時間が Y 増加します。
高橋君は部屋 N にたどりつくことができますか?
ポイント
ボーナスを部屋番号をインデックスとして取り扱い、移動の消費時間と同期させる
例)bonus=[0,2,5,3,0]
265B.py
入力例
4 1 10
5 7 5
2 10
# 入力
N,M,T = map(int,input().split())
L = [0] + list(map(int, input().split())) # スタート位置を 0 とする
# L:[0, 5, 7, 5]
bonus=[0]*(N) # ボーナスを格納する 初期値 0埋め
for i in range(M):
X,Y = map(int,input().split())
bonus[X-1] = Y
# bonus:[0, 10, 0, 0]
for i in range(1,N):
T -= L[i]
if T <= 0:
print("No")
exit()
T += bonus[i]
print("Yes")
ABC282 A-問題
問題文
整数 K が与えられます。英大文字を A から昇順に K 個繋げて得られる文字列を答えてください。
ポイント
数値をアルファベット大文字に置換するとき、Pythonでは、「chr(ord('A') + i)」を使う
i が 0 のときは、A
i が 1 のときは、B
282A.py
K = int(input())
S = ""
for i in range(K):
c = chr(ord('A') + i) # 数値をアルファベット大文字に置換する
S += c
print(S)
AtCoder初心者 DailyTrainingメモ②
AtCoder Python DailyTraining
ABC271 A-問題
問題文
0 以上 255 以下の整数 N を、必要に応じて先頭に 0 を加えることでちょうど 2 桁の 16 進表記に変換してください。
ポイント
10進数から16進数に変換するときは、hex() を使う
271A.py
# 入力
N = int(input())
X = hex(N) # 16進数に変換
# hex を使うと N=12の場合は、0xc N=255の場合は、0xff
# 答えは、それぞれ 0C / FF にする必要がある
if N <= 15:
# 前ゼロを付けて、末尾の1桁を表示(小文字→大文字)
X = X[-1]
print("0" + X.upper())
else:
# 末尾の2桁を表示(小文字→大文字)
X = X[2:]
print(X.upper())