

Time Limit: 2 sec / Memory Limit: 1024 MiB
問題文
5つの要素からなる配列が与えられます。
同じ値の要素が隣り合っているような箇所が存在するかどうかを判定してください。
存在するなら"YES"を、存在しなければ"NO"を出力してください。
この問題も以下の手順で解いてみましょう。
- ループを使わないで書く
- パターンを見つける
- ループで書き直す
data = [int(c) for c in input().split()] # dataの中で隣り合う等しい要素が存在するなら"YES"を出力し、そうでなければ"NO"を出力する # ここにプログラムを追記
制約
- 0≦A_i≦100 (1 ≦ i ≦ 5)
- A_i (1 ≦ i ≦ 5)は整数
入力
入力は次の形式で標準入力から与えられます。
A_1 A_2 A_3 A_4 A_5
出力
配列の隣り合う要素のうち、値が等しいものが存在するなら"YES"を、存在しなければ"NO"を出力してください。
出力の最後には改行が必要です。
ジャッジでは以下の入力例以外のケースに関してもテストされることに注意。
入力例1
5 3 3 1 4
出力例1
YES
入力例2
1 1 2 3 4
出力例2
YES
入力例3
1 2 1 2 1
出力例3
NO
入力例4
100 100 100 100 100
出力例4
YES
ヒント
- ループを使わないで書く
- パターンを見つける
- ループで書き直す
に沿って書く場合の流れをヒントで説明します。
まずは自分で考えてみて、詰まったら見てみましょう。
ヒント1 (ループを使わないで書く)
隣合っている等しい要素があるかを順番に確認します。クリックでヒントプログラムを見る
# dataの中で隣り合う等しい要素が存在するなら"YES"を出力し、そうでなければ"NO"を出力する
if data[0]==data[1] or data[1]==data[2] or data[2]==data[3] or data[3]==data[4]:
print("YES")
else:
print("NO")
ヒント2 (パターンを見つける)
繰り返しのパターンを見つけます。 このままだと直接for文に書き換えにくいので,「または」の条件を複数のif文に分解します。 次のパターンが繰り返し存在していることが分かります。クリックでヒントを見る
ヒント1のヒントプログラムでは2行目のif文の中身が同じパターンの繰り返しになっています。if data[0]==data[1] or data[1]==data[2] or data[2]==data[3] or data[3]==data[4]:
また、答えがYESなのかNOなのかをbool型の変数に入れるようにします。次のプログラムではYESならTrue、NOならFalseとしています。ans = False # 始めはfalseにしておき、条件を満たすときにtrueになるようにする
if data[0]==data[1]:
ans = True
if data[1]==data[2]:
ans = True
if data[2]==data[3]:
ans = True
if data[3]==data[4]:
ans = True
if ans:
print("YES")
else:
print("NO")
if data[k]==data[k+1]:
ans = True
ヒント3 (ループで書き直す)
以下のように for 文を書いてみてください:クリックでヒントを見る
ans = False
for k in (#ここを埋めてください):
if data[k]==data[i+1]:
ans = True
テスト入出力
書いたプログラムがACにならず、原因がどうしてもわからないときだけ見てください。
クリックでテスト入出力を見る
テスト入力1
0 1 2 3 3
テスト出力1
YES
テスト入力2
0 1 100 100 4
テスト出力2
YES
テスト入力3
40 30 66 44 65
テスト出力3
NO
解答例
必ず自分で問題に挑戦してみてから見てください。
クリックで解答例を見る
data = [int(c) for c in input().split()]
# dataの中で隣り合う等しい要素が存在するなら"YES"を出力し、そうでなければ"NO"を出力する
ans = False # 始めはfalseにしておき、条件を満たすときにtrueになるようにする
for k in range(len(data)-1):
if data[k]==data[k+1]:
ans = True
if ans:
print("YES")
else:
print("NO")