728x90
반응형
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제 설명
개구리가 일정한 간격으로 일렬로 놓여있는 징검다리를 건너려고 합니다.
징검다리에는 자연수가 적혀있으며, 개구리는 자신이 밟고 있는 징검다리에 적혀있는 숫자만큼 앞쪽으로 점프해야 합니다. 개구리는 현재 첫 번째 징검다리 위에 앉아있습니다.
징검다리에 적혀있는 숫자가 첫 번째부터 순서대로 들어있는 배열 stones가 매개변수로 주어질 때, 개구리가 징검다리를 모두 건너기 위해 필요한 점프 횟수를 return 하도록 solution 함수를 작성하려 합니다. 빈칸을 채워 전체 코드를 완성해주세요.
매개변수 설명
징검다리에 적힌 숫자가 첫 번째 징검다리부터 순서대로 들어있는 배열 stones가 solution 함수의 매개변수로 주어집니다.
- stones 배열의 길이는 1 이상 100 이하입니다.
- stones의 원소(돌에 적혀있는 숫자)는 1 이상 5 이하의 자연수입니다.
return값 설명
solution 함수는 개구리가 징검다리를 모두 건너기 위해 필요한 점프 횟수를 return 합니다.
예시
예시 설명
예시 #1
6개의 징검다리에 순서대로 [2, 5, 1, 3, 2, 1]이 적혀있는 경우의 예시입니다.
위 그림에서 처음에 개구리는 가장 왼쪽에 있는 첫 번째 징검다리에 앉아있습니다.
- 첫 번째 징검다리에 2가 적혀있으므로 두 칸을 점프하여 세 번째 징검다리로 이동합니다.
- 세 번째 징검다리에는 1이 적혀 있으므로 한 칸을 점프하여 네 번째 징검다리로 이동합니다.
- 네 번째 징검다리에는 3이 적혀 있으므로 3칸을 점프하여 모든 징검다리를 건너게 됩니다.
위 예시에서 개구리는 총 3번 점프하여 모든 징검다리를 건넜습니다.
코드
def solution(stones):
cnt = 0
current = 0
n = len(stones)
while **current < n**:
current += **stones[current]**
cnt += 1
return cnt
풀이
- n = len(stones) 라는 식이 주어짐
- stones 배열의 길이를 활용하기!
- stones 배열의 길이보다 현재 있는 위치가 크면 징검다리를 건넌 것이기 때문에 stones 배열의 길이보다 현 위치가 작을 때를 조건으로 내검
- current += stones[current]
- current 변수에 stones 원소를 추가해주고 싶었으나 어떻게 하는 지 몰라 코드 찾아봄..
- stones 배열에서 current 위치에 있는 원소를 확인할 수 있음
😢풀지 못한 이유
- current 변수에 현재 stones의 원소를 더해주고자 하는데, 반복문을 사용하는 것이 아니라 어떠한 식으로 더해야 할 지 고민하였음
728x90
반응형
'코딩 테스트 > COS PRO Python 2급' 카테고리의 다른 글
[프로그래머스 - COS PRO 파이썬 2급] 7. 알파벳 바꾸기 (0) | 2022.07.08 |
---|---|
[프로그래머스 - COS PRO 파이썬 2급] 6. 키가 K보다 큰 사람 (0) | 2022.07.08 |
[프로그래머스 - COS PRO 파이썬 2급] 4. 학점 계산 (0) | 2022.07.05 |
[프로그래머스 - COS PRO 파이썬 2급] 3. 공항 방문객 (0) | 2022.07.05 |
[프로그래머스 - COS PRO 파이썬 2급] 2. 총점 (0) | 2022.07.05 |