Leetcode Java Eliminate Maximum Number of Monsters

업데이트:

문제

Link

코드

class Solution {

  public int eliminateMaximum(int[] dist, int[] speed) {
    int length = dist.length;
    for (int i = 0; i < length; i++) {
      dist[i] = (dist[i] - 1) / speed[i];
    }
    Arrays.sort(dist);
    for (int i = 0; i < length; i++) {
      if (dist[i] < i) {
        return i;
      }
    }
    return length;
  }

}

결과

Link

설명

  1. dist 거리에 있는 괴물들이 speed의 속도로 달려올 때, 1분에 한 번씩 쏠 수 있는 총으로 잡을 수 있는 괴물의 최대 수를 구하는 문제이다.

  2. length는 dist의 길이인 괴물의 수를 저장할 변수이다.

  3. 0부터 length 미만까지 i를 증가시키면서 dist[i]에 $\frac{dist[i] - 1}{spped[i]}$인 몬스터가 도달하는 시간을 저장해준다.

  4. dist를 오름차순 정렬해준 후 dist[i]가 i보다 작은 경우, 몬스터가 해당 시간 이전에 도달했으므로 i를 주어진 문제의 결과로 반환한다.

  5. 반복이 완료되면 모든 괴물을 잡았으므로 length를 주어진 문제의 결과로 반환한다.

소스

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

댓글남기기