주어진 배열의 원소가 0이면 그 자리로 jump할 수 있고 1이면 그 자리로 jump하지 못한다. 이동은 한번에 1칸, 2칸만 가능하다. 끝까지 도달하기 위한 최소 jump 수를 구해야 한다.
2칸을 이동한다고 했을 때 배열의 끝을 초과하지 않으면서 이동하려는 자리의 값이 0이면 jumps에 1을 누적하고 i는 2를 누적한다.
1칸을 이동한다고 했을 때 배열의 끝을 초과하지 않으면서 이동하려는 자리의 값이 0이면 jumps에 1을 누적하고 i는 1을 누적한다.
1칸을 이동한다고 했을 때 배열의 끝을 초과하지 않으면서 이동하려는 자리의 값이 1이면 jumps에 1을 누적하고 i는 2를 누적한다.
jumps를 반환한다
#!/bin/python3
import math
import os
import random
import re
import sys
#
# Complete the 'jumpingOnClouds' function below.
#
# The function is expected to return an INTEGER.
# The function accepts INTEGER_ARRAY c as parameter.
#
def jumpingOnClouds(c):
i = 0
jumps = 0
length = len(c)
for v in c:
if length >= i+3 and c[i+2] == 0:
jumps += 1
i += 2
elif length >= i+2 and c[i+1] == 0:
jumps += 1
i += 1
elif length >= i+2 and c[i+1] == 1:
jumps += 1
i += 2
return jumps
if __name__ == '__main__':
fptr = open(os.environ['OUTPUT_PATH'], 'w')
n = int(input().strip())
c = list(map(int, input().rstrip().split()))
result = jumpingOnClouds(c)
fptr.write(str(result) + '\n')
fptr.close()