본문 바로가기

Python_Matter/COS Pro

YBM Python Test Level 2 - 개구리

Q>

문제 설명
개구리가 일정한 간격으로 일렬로 놓여있는 징검다리를 건너려고 합니다.

징검다리에는 자연수가 적혀있으며, 개구리는 자신이 밟고 있는 징검다리에 적혀있는 숫자만큼 앞쪽으로 점프해야 합니다. 

개구리는 현재 첫 번째 징검다리 위에 앉아있습니다.

징검다리에 적혀있는 숫자가 첫 번째부터 순서대로 들어있는 배열 stones가 매개변수로 주어질 때, 개구리가 징검다리를 모두 건너기 위해 필요한 점프 횟수를 return 하도록 solution 함수를 작성하려 합니다. 

빈칸을 채워 전체 코드를 완성해주세요.

- 매개변수 설명
징검다리에 적힌 숫자가 첫 번째 징검다리부터 순서대로 들어있는 배열 stones가 solution 함수의 매개변수로 주어집니다.
* stones 배열의 길이는 1 이상 100 이하입니다.
* stones의 원소(돌에 적혀있는 숫자)는 1 이상 5 이하의 자연수입니다.

 

- return값 설명
solution 함수는 개구리가 징검다리를 모두 건너기 위해 필요한 점프 횟수를 return 합니다.

- 예시

stones result
[2,5,1,3,2,1]  3


- 예시 설명
예시 #1
6개의 징검다리에 순서대로 [2, 5, 1, 3, 2, 1]이 적혀있는 경우의 예시입니다.

위 그림에서 처음에 개구리는 가장 왼쪽에 있는 첫 번째 징검다리에 앉아있습니다.

첫 번째 징검다리에 2가 적혀있으므로 두 칸을 점프하여 세 번째 징검다리로 이동합니다.
세 번째 징검다리에는 1이 적혀 있으므로 한 칸을 점프하여 네 번째 징검다리로 이동합니다.
네 번째 징검다리에는 3이 적혀 있으므로 3칸을 점프하여 모든 징검다리를 건너게 됩니다.
위 예시에서 개구리는 총 3번 점프하여 모든 징검다리를 건넜습니다.

 

A>

def solution(stones):
    cnt = 0                             # 개구리 점프 횟수
    current = 0                         # 개구리 현재 위치
    n = len(stones)
    while current < n:                  # 개구리의 현재 위치가 stones 리스트의 길이보다 더 크다면 징검 다리를 모두 건넌 상황
        current += stones[current]      # 개구리가 점프하는 거리는 stones[현재위치]
        cnt += 1                        # 개구리가 점프하는 횟수
    return cnt                          # currnet가 n보다 크거나 같아지면 반복문 종료

print(solution([2, 5, 1, 3, 2, 1]))

 

 

F>

Quiz5.py
0.00MB

 

#>

https://programmers.co.kr/learn/courses/33