ゼロから始めるLeetCode Day50「739. Daily Temperatures」
概要 海外ではエンジニアの面接においてコーディングテストというものが行われるらしく、多くの場合、特定の関数やクラスをお題に沿って実装するという物がメインである。 どうやら多くのエンジニアはその対策としてLeetCodeなるサイトで対策を行うようだ。 早い話が本場でも行われているようなコーディングテストに耐えうるようなアルゴリズム力を鍛えるサイトであり、海外のテックカンパニーでのキャリアを積みたい方にとっては避けては通れない道である。 と、仰々しく書いてみましたが、私は今のところそういった面接を受ける予定はありません。 ただ、ITエンジニアとして人並みのアルゴリズム力くらいは持っておいた方がいいだろうということで不定期に問題を解いてその時に考えたやり方をメモ的に書いていこうかと思います。 Leetcode Python3で解いています。 Twitter やってます。 ゼロから始めるLeetCode 目次 前回 ゼロから始めるLeetCode Day49 「1323. Maximum 69 Number」 次回 ゼロから始めるLeetCode Day51 「647. Palindromic Substrings」 Twitter やってます。 問題 739. Daily Temperatures 難易度はMedium。 Top 100 Liked Questionsからの抜粋です。 問題としては、それぞれの日の気温を格納したリストである T が与えられます。 それらの要素が入力の各日より暖かい気温になるまで何日かかるかを示すリストを返すアルゴリズムを設計してください。 例えば、 T = [73、74、75、71、69、72、76、73] である場合、返すリストは [1、1、4、2、1、1、0、0] となります。 なお、気温の長さは [1,30000] 、各気温は [30,100] の間で与えられるものとします。 問題を見た時、最初はえ??なんで出力がこうなるの?と思いましたが、よくよく見てみたら自分の理解力が低いだけでした。 次の日との差とかではなく、単純に何日後にその日の気温を超えるかを導けば良いだけなんですね。 解法 最初に0が要素の長さ分入ったリストを用意してあげて、素直にリストを舐めていくのが分かりやすいかと思