AtCoder
解くに至ったもの(10問)
ABC:072C
ARC:019A/021A/022A/023A/024A/026A
みんプロ:B
全国統一なんちゃら:A,B
ABC072C
方針自体はすぐ決まったけどそれをちゃんとACさせるまで一時間 ヒェ
マズかったポイントは三つくらいあって、
①最初数字に0が入らないもんだと決めつけていた
②10^5のリストを作ろうとしてたけど①の勘違いにより実際は一つ足りなかった
③上二つに気づいたがリストMをつくるところでLに0を入れてwhile文を止めようとしていたため、Lが全部0の場合カウントされないことが起こっていた(このため2WAを食らう)
☆(リスト名).insert(n,a)
リストのn番目の文字の前にaを追加 だからリストの先頭に入れたいときはnを0にすればよい
ARC021A
与えられた数の集まりから行列みたいなのをつくるやつ
以前(2/10)学習したのはリスト内包表記だった 二日で忘れたのでもう一回書く 最悪
①リスト内包表記は、
L.append([int(i) for i in input().split()])
だった
②リスト内包表記を使わないと、
L = []
for i in range(行数):
L.append(list(map(int(input().split()))
でイケる(要は各行で受け取った入力を並べてく、これ自体は前者と同じだけどこっちの方が直感的そう。ただリスト内包の方が実行時間早い?これはわかんない)
具体的には
2 3 3
4 1 0
2 4 5
みたいな入力に対し、
L = [[2,3,3],[4,1,0],[2,4,5]]
となる
数字じゃ無くても、L.append(input().split())とすれば文字のリストを得ることができる
ARC026A
リストで、重複する要素をまとめたいときは
set(リスト名)
とすればよい
しかし、これはリストと同じように「何番目の要素」という操作ができないので、
L = list(set(リスト名))
としてリストにする使い方をするのが便利そう
あと、リスト内の要素の数え方は
(リスト名).count(数えたいもの)
ss
えっちなのを3000字追加した