LoginSignup
3
2

More than 3 years have passed since last update.

ゼロから始めるLeetCode Day6 「1342. Number of Steps to Reduce a Number to Zero」

Posted at

概要

海外ではエンジニアの面接においてコーディングテストというものが行われるらしく、多くの場合、特定の関数やクラスをお題に沿って実装するという物がメインである。

その対策としてLeetCodeなるサイトで対策を行うようだ。

早い話が本場でも行われているようなコーディングテストに耐えうるようなアルゴリズム力を鍛えるサイト。

せっかくだし人並みのアルゴリズム力くらいは持っておいた方がいいだろうということで不定期に問題を解いてその時に考えたやり方をメモ的に書いていこうかと思います。

Leetcode

基本的にeasyのacceptanceが高い順から解いていこうかと思います。

前回
ゼロから始めるLeetCode Day5 「1266. Minimum Time Visiting All Points」

問題

1342. Number of Steps to Reduce a Number to Zero

与えられた自然数numが奇数であれば1を引き、偶数であれば2で割ります。それを0になるまで繰り返した回数をカウントし、その回数を返す関数を作成せよという問題です。

ひとまずパッと思いついたものを書きます。

class Solution:
    def numberOfSteps (self, num: int) -> int:
        steps = 0
        while num > 0:
            if num % 2 == 0:
                num //= 2 
            else:
                num -=1 
            steps += 1
        return steps
# Runtime: 28 ms, faster than 68.90% of Python3 online submissions for Number of Steps to Reduce a Number to Zero.
# Memory Usage: 13.8 MB, less than 100.00% of Python3 online submissions for Number of Steps to Reduce a Number to Zero.

書いた後に他の人のdiscussも色々見て見ましたがそこまで奇抜なものはありませんでした。
シンプルゆえにみな似通った答えになってしまうのかもしれませんね。

この問題に関しては正直あまり書くことないな・・・

3
2
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
3
2