A – tcdr
a e i o u 以外の文字を出力します。
入力例1の「atcoder」には a e o が含まれているのでその文字を取り除いた「tcdr」を出力します。
S について1文字ずつ見ていき、その文字が a e i o u 以外のとき、答え用の変数に追加していきます。
1文字ずつ見ていくには for 文を使います。
S = 'abcde'
# len() で文字列の長さを取得してループ
for i in range(len(S)):
print(S[i])
# 文字列について直接ループ
for c in S:
print(c)
""" いずれの出力結果も次の通り
a
b
c
d
e
"""
その1文字について if 文で a e i o u だったときは、答え用の変数に追加する処理をスキップしています
S = input()
answer = ''
for c in S:
# a e i o u のいずれかだったときはスキップ
if c == 'a':
continue
if c == 'e':
continue
if c == 'i':
continue
if c == 'o':
continue
if c == 'u':
continue
# 答え用の変数に追加
answer += c
print(answer)
論理演算子の or を使うことで、if 分を1行にまとめることもできます。
S = input()
answer = ''
for c in S:
# a e i o u のいずれかだったときはスキップ
if c == 'a' or c == 'e' or c == 'i' or c == 'o' or c == 'u':
continue
# 答え用の変数に追加
answer += c
print(answer)
in 演算子を使ったコード
in 演算子を使うことで 簡単にチェックすることもできます。
x in y のように使い、x が y の部分文字列であるときに True を返します。
S = input()
answer = ''
for c in S:
# a e i o u のいずれかだったときはスキップ
if c in 'aeiou':
continue
# 答え用の変数に追加
answer += c
print(answer)
in 演算子は、リストで使うこともできます。
S = input()
answer = ''
for c in S:
# a e i o u のいずれかだったときはスキップ
if c in ['a', 'e', 'i', 'o', 'u']:
continue
# 答え用の変数に追加
answer += c
print(answer)
replace() を使ったコード
replace() を使って文字を置換することもできます。
replace(old, new) のように使い、old を new に置き換えます。
a e i o u の文字をそれぞれ、” に置き換えることで、取り除いています。
S = input()
S = S.replace('a', '')
S = S.replace('e', '')
S = S.replace('i', '')
S = S.replace('o', '')
S = S.replace('u', '')
print(S)
メソッドチェーンを使って、次のように書くこともできます。
S = input()
print(S.replace('a','').replace('e','').replace('i','').replace('o','').replace('u',''))
B – The Middle Day
入力例1だと、各月の日数は次のようになり、1年間の日数は365日になります。
- 1月:31日
- 2月:28日
- 3月:31日
- 4月:30日
- 5月:31日
- 6月:30日
- 7月:31日
- 8月:31日
- 9月:30日
- 10月:31日
- 11月:30日
- 12月:31日
問題文から、一年の真ん中の日は D を合計したものに1を足し、2で割った日目になります。
入力例1では(31+28+31+30+31+30+31+31+30+31+30+31+1)/ 2 = 183日目です。
1年の日数は次のように for 文でループすることで求めることができます。
M = int(input())
D = list(map(int, input().split()))
# 1年の日数
total_days = 0
for d in D:
total_days += d
print(total_days) # 入力例1だと 365 が出力される
sum() を使うことで求めることもできます。
M = int(input())
D = list(map(int, input().split()))
# 1年の日数
total_days = sum(D)
print(total_days) # 入力例1だと 365 が出力される
あとは、その日数になるまでループしていくことで答えが求まります。
M = int(input())
D = list(map(int, input().split()))
mid_day = (sum(D)+1) // 2
now = 0
for month in range(M):
for day in range(D[month]):
now += 1
if now >= mid_day:
print(month+1, day+1)
exit()