728x90
반응형

import sys 
input = sys.stdin.readline

def BOJ1003() :
  T = int(input())
  dp = [0] * 41
  dp[0] = [1, 0]
  dp[1] = [0, 1]
  dp[2] = [1, 1]

  for i in range(3, 41) :
    temp = []
    for a, b in zip(dp[i-1], dp[i-2]) :
      temp.append(a+b)
    dp[i] = temp

  for i in range(T) :
    print(*dp[int(input())])

BOJ1003()

 

이 문제에 대해 포스팅을 하는 것은 zip과 array spread에 대해서 서술하고 싶어서 였다.

a = [1, 2, 3]
b = [100, 200, 300]
c = [4, 5, 6]

for i, j, k in zip(a, b, c) :
  print(i, j, k)

print(*a)
print(*b)

zip을 이용하면 복수개의 배열에 동일한 인덱스로 접근이 가능하다.

이걸 알기 전에는 같은 인덱스로 접근할때 코드의 양이 길어졌었는데 이제는 그렇지 않다!

 

spread는 for문을 돌리지 않고 순서대로 출력하고 싶을때 자주 쓰는 python 기능이다. 

es6에서 편하게 썼었는데 python에도 있음을 알게 되었다!

 

 

https://www.acmicpc.net/problem/1003

 

1003번: 피보나치 함수

각 테스트 케이스마다 0이 출력되는 횟수와 1이 출력되는 횟수를 공백으로 구분해서 출력한다.

www.acmicpc.net

 

728x90
반응형

+ Recent posts