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 1 year has passed since last update.

Codility Lesson4 PermCheck

Posted at

Lesson4のPermCheckは配列Aに対して1~N(Nは任意)の範囲の値が欠落せず登場しているかを判定するというものです。
例えば長さ3の配列A,Bに対して
A = [2,1,3]は1~3の数字が欠落せず並んでいるが
B = [2,1,4]は1~4の数字のうち3が欠落していることがわかる。
このような数字が欠落しているかを判定するプログラムを今回は書いていきます。

アルゴリズムは以下の通りです。
1 配列を小さい順にソーティングしていく。
2 ソートし終わった配列に対して、配列の0番目から順番に1,2,3…と並んでいるかどうか確認していき、並んでいる場合は1を、途中で数字が飛んでいる場合は欠けているということなので0を返せばよい。

コードは以下の通りです。

def solution(A):
    A = sorted(A)
    len_A = len(A)
    i = 0
    while i < len_A:    
        if i+1 == A[i]:
            i += 1
        else:
            break

    if i == len_A:
        return 1
    else:
        return 0

さて結果は。。。。?

スクリーンショット 2022-07-02 21.22.16.png

やったー、100%です!

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?