본문 바로가기
알고리즘/[python] 백준 BOJ

[python] 백준 9625 BABBA

by Alan_Kim 2023. 3. 17.
728x90
반응형

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

 

9625번: BABBA

상근이는 길을 걷다가 신기한 기계를 발견했다. 기계는 매우 매우 큰 화면과 버튼 하나로 이루어져 있다. 기계를 발견했을 때, 화면에는 A만 표시되어져 있었다. 버튼을 누르니 글자가 B로 변했

www.acmicpc.net

 

문제 해결

  • A→B, B→BA로 바뀌고 k번째 바뀌었을 때 A, B의 개수를 구하는 것이므로 DP를 이용하는 것이 편할 것이란 생각이 든다.
  • dp[i][0]는 i번 눌렀을 때 A의 개수, dp[i][1]은 i번 눌렀을 때 B의 개수로 정의한다.
  • dp[0][0] = 1, dp[0][1] =0 에서 시작
  • dp[i][0] = dp[i-1][1] 이고 dp[i][1] = dp[i-1][0] + dp[i-1][1] 임을 알 수 있다.

 

CODE

import sys
input = sys.stdin.readline

k = int(input())
dp = [[0,0] for _ in range(k+1)] # A, B 개수
dp[0][0] = 1
for i in range(1,k+1): # 'A', B'
    dp[i][0] = dp[i-1][1]
    dp[i][1] = dp[i-1][0] + dp[i-1][1]
print(dp[k][0], dp[k][1])
728x90
반응형

'알고리즘 > [python] 백준 BOJ' 카테고리의 다른 글

[python] 백준 10026 적록색약  (0) 2023.03.18
[python] 백준 16194 카드 구매하기 2  (0) 2023.03.18
[python] 백준 10775 공항  (0) 2023.03.17
[python] 백준 2810 컵홀더  (0) 2023.03.17
[python] 백준 2212 센서  (0) 2023.03.17

댓글