N = int(input())
import sys
jlist=list(map(int, sys.stdin.readline().split()))
step=[]
sum=[]
num=0
for i in range (N) :
for j in range (i,N) :
if j>i :
num=num+jlist[num-1]+1
else :
num=num+j+1
if num>N :
break
step.append(num)
sum.append(len(step))
step=[]
num=0
for k in sum :
print(k,end=" ")
[오답] 문제를 제대로 안읽었다가 만든 코드. 시간초과 걸려서 결국 처음부터 다시했다.
출발한 칸마다 밟는 칸을 계산해서 리스트에 넣고 그 리스트의 길이를 또 저장해뒀다가 한번에 출력한다.
주어진 정보와 반대로코딩했기 때문에 머리를 꽤나 썼다
N = int(input())
import sys
jump=list(map(int, sys.stdin.readline().split()))
sol=[]
sol.append(1)
for i in range (N-1,0,-1) :
if N>i+jump[i-1] :
g=sol[N-i-jump[i-1]-1]
sol.append(g+1)
else :
sol.append(1)
sol.reverse()
for k in sol :
print(k,end=" ")
.
[정답] N번째 칸의 답은 1이라는 것을 이용했다.
점프대의 특성을 이용해서 점프한 칸의 숫자를 가져오는데, 그 값이 N을 넘길경우는 1로 저장하는 방식이다.
'Koala - 12기 > 기초 알고리즘 스터디' 카테고리의 다른 글
[백준 Python3] 10173번 : 니모를 찾아서 (0) | 2023.09.17 |
---|---|
[백준 python3] 1551번 : 수열의 변화 (0) | 2023.09.17 |
[백준/Python] 25497번 기술 연계마스터 임스 (0) | 2023.09.16 |
[백준/Python] 11365번: !밀비 급일 (0) | 2023.09.16 |
[백준/Python] 17094번: Serious Problem (0) | 2023.09.11 |