リアルタイムに解けた問題
A - Count Takahashi
問題文
文字列が$N$個与えられます。
$i$番目($1\leq i \leq N$)に与えられる文字列$S_{i}$はTakahashi
かAoki
のどちらかと等しいです。
$S_{i}$がTakahashi
と等しい$i$がいくつあるか求めてください。
制約
- $1\leq N \leq 100$
- $N$は整数
- $S_{i}$は
Takahashi
かAoki
のいづれか($1\leq i \leq N$)
アルゴリズム
リストからfor文で一つづつ要素を文字列を取り出し、それがTakahashi
と等しければ、カウンター変数countを1増やす。
最後にcountを出力。
ソースコード
N = int(input())
S = [input() for _ in range(N)]
count = 0
for s in S:
if s == 'Takahashi':
count += 1
print(count)
B - Couples
問題文
$2N$人の人が横一列に並んでおり、左から$i$番目の人は色$A_{i}$の服を着ています。ここで、服の色は$1$から$N$の$N$色であり、それぞれの色についてちょうど$2$人の人がその色の服を着ています。
$i = 1,2,...,N$のうち、以下の条件を満たすものは何通りあるか求めてください。
- 色$i$の服を着た二人の人の間にはちょうど一人いる。
制約
- $2\leq N \leq 100$
- $1\leq A_{i} \leq N$
- $A$には$1$以上$N$以下の整数全てがそれぞれ$2$個づつ含まれる
- 入力される数値は全て整数
アルゴリズム
同じ服の色を着た人の間にいる人数はちょうど1人であるのが何通りであるかを知りたいので、for文の処理で、$i$番目と$i+2$番目の要素が同じとき、カウンター変数countを1増やす。
最後にcountを出力。
ソースコード
N = int(input())
A = list(map(int, input().split()))
count = 0
for i in range(2*N -2):
if A[i] == A[i+2]:
count += 1
print(count)