백준 - 점프 점프(#11060)
#BFS을 이용한 풀이법
from collections import deque
n = int(input())
jump = list(map(int, input().split()))
visited = [False]*n
def bfs(i, j):
visited[0] = True
queue = deque([[i, j]])
while queue:
pos, cnt = queue.popleft()
if pos == n - 1:
return cnt
for i in range(1, jump[pos] + 1):
if pos + i < n and visited[pos + i] == False:
visited[pos + i] = True
queue.append([pos + i, cnt + 1])
return -1
print(bfs(0, 0))
#Dynamic Programming을 이용한 풀이법
N = int(input())
jump = list(map(int,input().split()))
dp = [N]*(N)
dp[0]=0
stop=False
for i in range(N):
for j in range(1,jump[i]+1):
dp[i+j] = min(dp[i+j],dp[i]+1)
if i+j==N-1:
stop=True
break
if stop:
break
print(dp[N-1] if dp[N-1]!=N else -1)
- 백준 - 섬의 개수(#4963)
- 백준 - 치즈(#2638)
- 백준 - 점프 점프(#11060)
- 백준 - 나무 자르기(#2805)
- 백준 - 회의실 배정(#1931)
- 백준 - 단지번호붙이기(#2667)
- 백준 - 미로 탐색(#2178)
- 백준 - DFS와 BFS(#1260)
- 백준 - 가장 긴 증가하는 부분 수열(#11053)
- 백준 - 계단 오르기(#2579)
- 백준 - 유기농 배추(#1012)
- 백준 - 평범한 배낭(#12865)
- 소프티어 - 조립라인
- 소프티어 - 슈퍼컴퓨터 클러스터
- 프로그래머스 - 타겟넘버
- 프로그래머스 - 네트워크
- 프로그래머스 - 단속카메라
- 프로그래머스 - 올바른 괄호
- 프로그래머스 - 튜플
- 프로그래머스 - 여행 경로
- 프로그래머스 - 구명보트
- 프로그래머스 - 주차 요금 계산
- 프로그래머스 - 짝지어 제거하기
- 프로그래머스 - 예상 대진표
- 프로그래머스 - 멀리 뛰기
- 프로그래머스 - 단어 변환
- 프로그래머스 - 더 맵게
- 프로그래머스 - 기능 개발
- 프로그래머스 - 전화번호 목록
- 프로그래머스 - 베스트앨범
- 프로그래머스 - 위장
- 프로그래머스 - 전력망을 둘로 나누기
- 프로그래머스 - 모의고사
- 프로그래머스 - 야근 지수
- 프로그래머스 - 같은 숫자는 싫어
- 프로그래머스 - 소수 찾기
- 프로그래머스 - 프린터
- 프로그래머스 - 주식 가격
- 프로그래머스 - 다리 위를 지나는 트럭
- 프로그래머스 - 이중우선순위큐