[HackerRank] The Hurdle Race

아르당·2023년 11월 4일
0

HackerRank

목록 보기
9/109
post-thumbnail

문제를 이해하고 있다면 바로 풀이를 보면 됨
전체 코드로 바로 넘어가도 됨
마음대로 번역해서 오역이 있을 수 있음

문제

한 게임 플레이어가 허들 경주 게임을 한다. 허들은 높이를 변경할 수 있고, 캐릭터는 점프할 수 있는 최대 높이가 있다. 마법 물약이 있는데 점프할 수 있는 최대 높이를 +1 할 수 있다. 캐릭터가 포션을 몇 개를 마셔야 모든 허들을 넘을 수 있는지 구해야 한다. 만약 캐릭터가 이미 모든 허들을 넘을 수 있다면 0을 반환한다.

Example

height = [1, 2, 3, 3, 2]
k = 1

캐릭터는 처음에 점프 1을 할 수 있다. 그리고 3 - 1 = 2개의 포션을 마시면 모든 허들을 점프할 수 있다.

Function Description

hurdleRace 함수를 완성해라.
hurdleRace 함수는 아래와 같은 매개변수를 가지고 있다.

  • int k: 캐릭터가 점프할 수 있는 높이
  • int height[n]: 각 허들의 높이

Returns

  • int: 필요한 포션의 최소 개수, 항상 0 또는 더 많음

Constraints

  • 1 <= n, k <= 100
  • 1 <= height[n] <= 100

풀이

가장 높은 허들의 높이를 쉽게 구하기 위해 정렬을 먼저 한다. 그리고 변수 tallest에 가장 높은 허들의 높이를 할당한다.

height.sort(Comparator.naturalOrder());

int tallest = height.get(height.size() - 1);

캐릭터가 가장 높은 허들에서 점프할 수 있는 높이를 뺀게 0보다 크면 뺀 값을 반환하고 그렇지 않으면 모든 허들을 넘을 수 있으므로 0을 반환한다.

if(tallest - k > 0){
	return tallest - k;
}

return 0;

전체 코드

public static int hurdleRace(int k, List<Integer> height) {
	height.sort(Comparator.naturalOrder());

	int tallest = height.get(height.size() - 1);

	if(tallest - k > 0){
		return tallest - k;
	}

	return 0;
}
profile
내 마음대로 코드 작성하는 세상

0개의 댓글