From 81fd3ef46e26d4178517bec0342737767e80ba6c Mon Sep 17 00:00:00 2001 From: sm4640 Date: Thu, 26 Mar 2026 23:02:47 +0900 Subject: [PATCH] =?UTF-8?q?1003-s3=20=EC=84=B1=EA=B3=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- workbook_7319/silver/1003-s3.py | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 workbook_7319/silver/1003-s3.py diff --git a/workbook_7319/silver/1003-s3.py b/workbook_7319/silver/1003-s3.py new file mode 100644 index 0000000..7f5072b --- /dev/null +++ b/workbook_7319/silver/1003-s3.py @@ -0,0 +1,33 @@ +# 피보나치 함수 + +import sys + +input = sys.stdin.readline + +def solution(): + t = int(input().rstrip()) + + dp = [0] * 50 + dp[0] = (1, 0) + dp[1] = (0, 1) + + for i in range(2, 50): + dp[i] = (dp[i-1][0]+dp[i-2][0], dp[i-1][1]+dp[i-2][1]) + + + for _ in range(t): + k = int(input().rstrip()) + print(*dp[k]) + + return + + +solution() + +""" +걸린 시간: 15분 + +시간 복잡도: n은 40보다 작다고 했기 때문에 dp테이블을 대략 50까지만 채우면 되므로 O(n)이다. + +해설: 현재 보는 수는 결국 1개 전과, 2개 전에 사용했던 0, 1의 개수의 합이므로 dp 테이블을 만들어서 계속 채워나가면 된다. +""" \ No newline at end of file