53480


コーディングテスト練習サイトCodilityの「FrogRiverOne」という問題について、問題の理解とコードがなぜあるケースでincorrectになるのかわからず困っています。

[FrogRiverOne coding task - Learn to Code -
Codility](https://app.codility.com/programmers/lessons/4-counting_elements/frog_river_one/)  
[上記のFrogRiverOneについて日本語で書かれた記事](http://codility-lessons-
jp.blogspot.com/2014/07/lesson-2-frogriverone.html)

以下問題文を原文引用しました。翻訳もかけてみたのですが、問題文が理解できないです。

> A small frog wants to get to the other side of a river. The frog is
> initially located on one bank of the river (position 0) and wants to get to
> the opposite bank (position X+1). Leaves fall from a tree onto the surface
> of the river.
>
> You are given an array A consisting of N integers representing the falling
> leaves. A[K] represents the position where one leaf falls at time K,
> measured in seconds.
>
> The goal is to find the earliest time when the frog can jump to the other
> side of the river. The frog can cross only when leaves appear at every
> position across the river from 1 to X (that is, we want to find the earliest
> moment when all the positions from 1 to X are covered by leaves). You may
> assume that the speed of the current in the river is negligibly small, i.e.
> the leaves do not change their positions once they fall in the river.
>
> For example, you are given integer X = 5 and array A such that:
[code]

>     A[0] = 1
>     A[1] = 3
>     A[2] = 1
>     A[3] = 4
>     A[4] = 2
>     A[5] = 3
>     A[6] = 5
>     A[7] = 4
>  
[/code]

>
> In second 6, a leaf falls into position 5. This is the earliest time when
> leaves appear in every position across the river.

例を満たすように以下のコードを書きましたが、テストケース`(2, [2, 2, 2, 2,
2])`の時に自分のコードだと`0`が返され、正しくは`-1`だと結果が出ました。  
修正のため、アドバイスをいただきたいです。

[code]

    def solution(X, A):
        result = 0
        if X not in A:
            result = -1
        else:
            result = A.index(X)
    return result
    
[/code]


CC BY-SA 4.0
2019-03-16T13:40:30.473
53477
2019-03-17T04:49:12.010
2019-03-17T04:49:12.010
question
python python3 アルゴリズム
コーディングテスト問題「FrogRiverOne」について


この問題を要約している部分はこの1文です ("that is" という言い方に注目してください)。

> that is, we want to find the earliest moment when all the positions from 1
> to X are covered by leaves

Nao さんの今のコードだと「位置 `X` に葉が落ちているかチェックし、落ちていればその時刻を返す」という挙動をします。しかし実際に求めるべきは「位置
`1` から `X` 全てに葉が落ちているかチェックし、落ちていれば最初に全て揃った時刻を返す」です。


CC BY-SA 4.0
2019-03-16T14:10:24.820
53480
2019-03-16T14:10:24.820
19110
53477
answer