AtCoderで茶色を目指す 8日目

7:00起床。前日のコンテストの疲れがあってか、ぐっすり眠ることができました。目覚ましが鳴る前に起きられた朝、まずは掃除からやっていこう!

本日も頑張ります!

本日の目標

今日、達成したいことは2つあります。

  1. 前日のコンテスト復習をする。
  2. pythonの勉強を進める。

コンテストで解けなかった問題や新たに気づきを経たことを再確認していきます。それが終わったら、pythonの勉強に移ります。

 

備忘録

辞書順比較

コンテストのA問題で出た問題です。この言葉を見た瞬間、頭がパニクりました。なので、辞書順について確認。

ja.wikipedia.org

wikiさんを見ましたが難しい言葉が多くて混乱しそうになりました。
wikiを参考に私なりの要約をすると「二つの異なる文字列に対して、それぞれの1文字を比較し、文字の順番が若い方が先に来るよ」って事かなと。。。

それって、辞書そのものじゃん。

コードで実装するには、比較演算子を使うだけです。

>>> s ="abc"

>>> t = "xyz"

>>> print("Yes" if s < t else "No")

Yes

 

リスト出力

次はC問題で分からなかった出力形式の備忘録です。

やりたいことはリストに格納されている要素を1行でスペース区切りで出力することです。「python リスト出力」でググると.「join()」を使おうということでした。

qiita.com

こちらのサイトを参考に要約しておきます。

joinは文字通り、追加のイメージです。次のコードのように使います。

a = ["a","b"]
a = ''.join(a)

.join()前の「' '」の中には区切り文字を入れます。例えば、「' '」(半角スペース)、「'_'」(アンダーバー)です。「()」の中にはリストの変数を入れます。

注意する点は、.join()はint型には使えません。そのため、リストの要素をstr型に変換しておく必要があります。

反省

コンテストはA,B,Cの3つは解けました。かなり時間がかかりましたので、スピードアップも意識したいところです。余った時間はD問題に取り組みました。ここまでくると、モジュールの知識を増やす必要がありそうです。

今まで以上に時間をかけず、素早く勉強していこう!

 

参考サイト

辞書式順序 - Wikipedia

【Python】リストの要素だけを並べて表示させる【縦並び、横並び】 - Qiita