★피보나치수열 복습 필요_[python_파이썬_Pass]백준_9625번_BABBA_다이나믹프로그래밍_풀이
2024. 9. 26. 20:21ㆍ코드리뷰
728x90
반응형
공부하는허딩크 : https://www.youtube.com/live/phXWvbSXQQk?feature=shared
1. 총 시간 : 40분
2. 이것저것 고민을 많이 하다가 피보나치수열의 방식을 활용하는 것을 찾아냈다. 하지만 피보나치 수열이 기억이 안난다..
"""
<규칙>
0 A
1 B
2 BA
3 BAB
4 BABBA
5 BABBABAB
6 BABBABABBABBA
7 BABBABABBABBABABBABAB
k의 값 : 0, 1, 2, 3, 4, 5, 6, 7, 8
전체 : 1, 1, 2, 3, 5, 8, 13, 20, 21
A : 1, 0, 1, 1, 2, 3, 5, 8
B : 1, 1, 2, 3, 5, 8
"""
<첫번째 시도 : 시간초과>
당연히 시간 초과를 예상했다. 답은 나오지만 너무 비효율 적인 코드였다.
K = int(input())
answer = "A"
for _ in range(1, K + 1):
temp = ""
for j in answer:
if j == "A":
temp += "B"
else:
temp += "BA"
answer = temp
A , B = 0, 0
for i in answer:
if i == "A":
A += 1
else:
B += 1
print(A, B, sep = ' ')
<두번째 시도 : 맞았습니다.>
피보나치를 대충 검색해서 방법을 찾아보고 다시 코드를 작성했다.
import sys
input = sys.stdin.readline
K = int(input())
# 40분 걸림 : 피보나치 수열 복습 필요
#피보나치수열
def fibo(k):
a, b = 0, 1
if k == 1:
return a, b
for i in range(1, k ):
a, b = b, a + b
return a, b
print(*fibo(K))
나중에 아래의 내용 참고해서 피보나치수열을 다시 복습해보자.
728x90
반응형
'코드리뷰' 카테고리의 다른 글
★[python_파이썬_pass]백준_1922번_네트워크 연결_MST_풀이 (3) | 2024.10.01 |
---|---|
★[알고리즘 학습_MST_python_파이썬]백준_1197번_최소스패닝트리_MST_알고리즘 기초 (0) | 2024.10.01 |
★투포인터복습필요[python_파이썬_Pass]백준_7795번_먹을것인가먹힐것인가_이분탐색_풀이 (0) | 2024.09.20 |
백준 2775 (0) | 2024.09.20 |
백준 2609번 (0) | 2024.09.20 |