반응형
Hackkerank의 Interview prepare ket 중 Warm-up Challenges의 JumpingOnClouds 문제 풀이 Java 코드
[제약]
- 점프는 현재 현재 인덱스에서 1 또는 2 증가한 인덱스까지만 가능.
- 점프 가능한 구름의 값은 0, 피해야 하는 구름의 값은 1.
- 구름을 통과할 수 있는 최소 점프 수를 구하라.
[전략]
- 최소 점프 수 이므로, 뛸 수 있는 최대 거리(2)를 우선적으로 탐색
- 최소 점프가 2므로, 피해야 하는 구름은 연속으로 있을 수 없다.
(ex: 0 1 1 )
public class JumpingOnTheCloud {
// Complete the jumpingOnClouds function below.
static int jumpingOnClouds(int[] c) {
int cnt = 0;
int i = 0;
while (true) {
if(i == c.length - 1){
return cnt;
}
if (i+2 <= c.length - 1 && c[i + 2] == 0) {
cnt++;
i += 2;
} else if(i+1 <= c.length - 1 && c[i+1] == 0) {
cnt++;
i += 1;
}
}
}
public static void main(String[] args) {
int[] c = {0, 0, 0,1,0,0};
int answer = 2;
int result = jumpingOnClouds(c);
System.out.printf("\nmy answer: %d , real answer: %d , result :: test %s%n", result, answer, result == answer);
}
}
반응형
'Programming > Algorithm' 카테고리의 다른 글
[Mysql] 프로그래머스 - GROUP BY입양 시각 구하기(2) (0) | 2020.10.19 |
---|---|
[Hackerrank] counting valleys - java (0) | 2020.09.08 |
[Java-알고리즘] Frog Jumps (0) | 2020.05.20 |
[Java-알고리즘] 카카오 블라인드 코딩 테스트 - 비밀 지도 (2) | 2020.01.23 |
[Java-알고리즘] Two Sum (0) | 2019.10.30 |