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
'알고리즘' 카테고리의 다른 글
이항계수 [백준 11401] - python (0) | 2022.02.08 |
---|---|
신나는 함수 실행 [백준 9184] - python (0) | 2022.02.07 |
치킨 배달 [백준 15686] - python (0) | 2022.02.05 |
이분 그래프 [백준 1707] - python (0) | 2022.02.04 |
가운데를 말해요 (0) | 2022.02.03 |