Codility Java FrogRiverOne

업데이트:

문제

Link

코드

// you can also use imports, for example:
// import java.util.*;

// you can write to stdout for debugging purposes, e.g.
// System.out.println("this is a debug message");

import java.util.Set;
import java.util.HashSet;

class Solution {
  public int solution(int X, int[] A) {
    Set<Integer> leafs = new HashSet<>();
    for (int idx = 0; idx < A.length; idx++) {
      leafs.add(A[idx]);
      // Get to the goal.
      if (X == leafs.size()) {
        return idx;
      }
    }
    return -1;
  }
}

설명

  1. 목표 지점에 도달하기 까지 잎의 위치를 저장할 Collection을 사용한다.
    • 중복된 잎의 위치는 의미가 없으므로 유일 값을 저장할 수 있는 Set을 사용한다.
  2. 잎의 위치를 가지고 있는 배열 A를 반복하여 leafs에 넣는다.
  3. 만약 목표 지점과 leafs의 크기가 동일하면 현재 index를 주어진 문제의 결과로 반환한다.

결과

Link

소스

Sample Code는 여기에서 확인 가능합니다.

댓글남기기