문제를 이해하고 있다면 바로 풀이를 보면 됨
전체 코드로 바로 넘어가도 됨
마음대로 번역해서 오역이 있을 수 있음
한 게임 플레이어가 허들 경주 게임을 한다. 허들은 높이를 변경할 수 있고, 캐릭터는 점프할 수 있는 최대 높이가 있다. 마법 물약이 있는데 점프할 수 있는 최대 높이를 +1 할 수 있다. 캐릭터가 포션을 몇 개를 마셔야 모든 허들을 넘을 수 있는지 구해야 한다. 만약 캐릭터가 이미 모든 허들을 넘을 수 있다면 0을 반환한다.
height = [1, 2, 3, 3, 2]
k = 1
캐릭터는 처음에 점프 1을 할 수 있다. 그리고 3 - 1 = 2개의 포션을 마시면 모든 허들을 점프할 수 있다.
hurdleRace 함수를 완성해라.
hurdleRace 함수는 아래와 같은 매개변수를 가지고 있다.
가장 높은 허들의 높이를 쉽게 구하기 위해 정렬을 먼저 한다. 그리고 변수 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;
}