본문 바로가기
TechNical/JAVA

[codility]FrogRiverOne

by 강멍멍이 2018. 1. 19.
반응형

Q. 강 위에 1초마다 나뭇잎이 무작위로 떨어지는데, 개구리가 그걸 밟고 강 반대쪽으로 넘어가는 것이

    가능해 지는 가장 빠른 시간을 구해라. 1 ~ N 까지 모든 지점에 나뭇잎이 떨어져야 건널 수 있다.

    (영어 실력이 미천하여 잘 못 해석 했을 수도 있다....)

    A = {1, 3, 1, 4, 2, 3, 5, 4}

    X = 5

A. 6

 

import java.util.HashSet;

class Solution {
    public int solution(int X, int[] A) {
        // write your code in Java SE 8
        boolean target = false;
        boolean done = false;
        int stepCnt = 0;
        int timeCnt = 0;
        HashSet<Integer> chkSet = new HashSet<Integer>();
        for(int i : A){
            if(i == X) target = true;
           
            if(!chkSet.contains(i)){
                chkSet.add(i);
                stepCnt++;
            }
           
            if(target & stepCnt == X){
                done = true;
                break;
            }
            timeCnt++;
        }
        if(!done) timeCnt = -1;
        return timeCnt;        
    }
}
반응형

댓글