0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

4 リストの操作 Dif:20 ABC191 B:「AtCoder 凡人が『緑』になるための精選50問詳細解説」サンプル

Last updated at Posted at 2021-08-01

この記事は拙著「AtCoder 凡人が『緑』になるための精選50問詳細解説」のサンプルです
価格:100円
kindle:https://www.amazon.co.jp/dp/B09C3TPQYV
booth(pdf):https://sano192.booth.pm/items/3179185

前:https://qiita.com/sano192/items/4432b669a04e69287c05
次:https://qiita.com/sano192/items/40fdf83cedacbc9d68a6

【目標】
・リストの作成、要素の追加方法を身につける。

【概要】
B問題でよくある数列をどうにかする問題。基本的なリストの操作をこの問題で身につけよう。

【方針】
問題文には「取り除き」とあるが、リストに受け取った後問題文の通り削除していくとインデックス番号がずれたり、実行時間が長すぎたりして大変になる。

以下のように実装すればよい。
(1)答えを格納するリスト(=ans)を用意する
(2)リストの要素を順番に確認し、Xと違う数字ならansに格納する
(3)ansの要素を出力する

【実装】
入力を受け取る

N,X=map(int, input().split())
A=list(map(int, input().split()))

答えを入れるリストをansとして定義する。ansは最初空っぽ。

ans=[]

次にAの要素を順番に確認し、Xと違う数字ならansに追加していく。
リストへの追加は
リスト.append(要素)
と書く。

for i in range(N):
    if A[i]!=X:
        ans.append(A[i])

A[i]!=Xは「A[i]がXと異なる」という意味。その場合はansにA[i]を追加する。

最後に答えを出力する。

print(*ans)

アスタリスクをつけずに単にprint(ans)とした場合、余計なカッコがつく。
たとえばans=[3,6,4]だった場合、
print(ans) → [3, 6, 4]
print(*ans) → 3 6 4
となる。
リストの要素を出力するときはアスタリスクをつけるようにしよう。

この問題については公式解説の「解答例(python)」がかなりマニアックな書き方をしている。この問題が解けなかった人が読んでも意味不明だろう。ある程度競技プログラミングに慣れていても意味不明なので気にしなくていい。

公式解説の内容はわかるがコード例が読めない、ということはよくある。そういうときは「提出結果」から他の人の提出結果を見てみよう。
「提出日時」を2回クリックして提出の早い順に並べ、上から5つ程度コード内容を確認するとわかりやすいコードが1つ、2つ出てくるだろう。
image7.png

【コード全文】

N,X=map(int, input().split())
A=list(map(int, input().split()))

ans=[]

for i in range(N):
    if A[i]!=X:
        ans.append(A[i])

print(*ans)

この記事は拙著「AtCoder 凡人が『緑』になるための精選50問詳細解説」のサンプルです
価格:100円
kindle:https://www.amazon.co.jp/dp/B09C3TPQYV
booth(pdf):https://sano192.booth.pm/items/3179185

前:https://qiita.com/sano192/items/4432b669a04e69287c05
次:https://qiita.com/sano192/items/40fdf83cedacbc9d68a6

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?