본문 바로가기

C언어

2025년 2학기 3주

[

import sys
from collections import deque

input = sys.stdin.readline

def main():
    n = int(input().strip())
    arr = list(map(int, input().split()))
    ball = deque((i+1, arr[i]) for i in range(n))
    ans = []

    while ball:
        ind, val = ball.popleft()
        ans.append(str(ind))
        if not ball:
            break
            
        #양수 음수로 나누지 않는 법도 가능하다
        if val > 0:
            # 양수 k는 남은 배열에서 오른쪽으로 k칸 
            #자기자신 제거됐으니 k-1
            ball.rotate(-(val-1))
        else:
            # 음수는 왼쪽으로 k칸 이동한다.
            #오른쪽으로 -(-k) = k칸
            ball.rotate(-val)

    print(" ".join(ans))

if __name__ == "__main__":
    main()

 

#점화식을 이용한 코드라는데 아직은 감이 확실하게 잘 안 온다.......
n = int(input())
dp = [0] * (n+2)  # dp[i]는 길이 i인 이친수 개수
dp[1] = 1 #길이가 1일 때는 1개이다
dp[2] = 1 #길이가 2일때는 10만 가능하므로 1개이다 (11은 불가능)

for i in range(3, n+1):
    dp[i] = dp[i-1] + dp[i-2]
    #여기서 트리 구조처럼 필요한 것만 더한다

print(dp[n])

'C언어' 카테고리의 다른 글

2025년 2학기 5주차 C언어  (0) 2025.10.11
2025년 2학기 4주차 C언어  (1) 2025.10.05
2025년 2학기 2주차  (0) 2025.09.20
2025년 2학기 1주차  (0) 2025.09.14
2025년 여름학기 9주차 C언어  (0) 2025.08.24