[백준] 9625 - BABBA 🆎 (Python) / 실버 5 / DP
- Programming/알고리즘
- 2022. 11. 8.
반응형
1. 문제🔥
링크: https://www.acmicpc.net/problem/9625
문제를 요약하자면, 화면에 A가 표시되어 있고, 버튼이 하나만 있는 기계가 있습니다. 버튼을 누르면 A는 B로 변하고, B는 BA로 변하게 됩니다. K 번 버튼을 눌렀을 때, A와 B의 개수를 구해야 합니다.
1) 예제 입출력❄️
버튼을 한 번 누르면, 화면에 표시되었던 A가 B로 바뀌고, 출력은 A가 0개, B가 1개로 0 1이 됩니다.
2. 핵심 논리☢️
한 번 누르면 A:0 B:1입니다. 그다음은 A:1 B:1 -> A:1 B:2 -> A:2 B:3입니다. A와 B가 피보나치의 규칙을 따르는 것을 찾는게 핵심입니다.
3. 풀이 코드✅
1) 코드
K=int(input())
a,b=0,1
for i in range(1,K):
a,b = b,a+b
print(a,b)
버튼을 누른 횟수 K를 입력 받습니다. 제한 사항에 따라 K는 1이상 45 이하입니다. 버튼을 한 번 눌렀을 때 A가 0개, B가 1개입니다. 이를 a, b 변수에 초기화해줍니다. 그리고 for 문은 버튼을 2번 이상 누른 경우부터 돌 수 있도록, range(1,K)로 시작합니다. for문 내부에서는 피보나치 수열이 진행될 수 있도록 a에는 b를, b에는 a+b를 동시에 넣어줍니다. 최종으로 a,b를 출력합니다.
2) 주석달린 코드
K=int(input()) # 버튼을 누른 횟수 K
a,b=0,1 # 버튼을 1번 누른 경우로 초기화
for i in range(1,K): # 2번 누른것부터 for문 반복
a,b = b,a+b # 피보나치 수열 진행
print(a,b) # A개수, B개수 출력
읽어주셔서 감사합니다.
다음에 더욱 유익한 글로 찾아오겠습니다.
* 관련 풀이 코드는 아래 깃허브 링크에 있습니다.
https://github.com/netsus/BaekJoon/blob/master/jupyter/9625_BABBA.ipynb
Reference)
1. BAEKJOON Logo: https://www.acmicpc.net/
반응형
'Programming > 알고리즘' 카테고리의 다른 글
[백준] 1915 - 정사각형 🔳 (Python) / 골드 4 / DP (0) | 2022.11.10 |
---|---|
[백준] 1106 - 호텔 🏨 (Python) / 골드 5 / DP (0) | 2022.11.09 |
[백준] 1309 - 동물원 🦁 (Python) / 실버 1 / DP (0) | 2022.11.07 |
[백준] 17404 - RGB거리 2 🎨 (Python) / 골드 4 / DP (0) | 2022.11.06 |
[백준] 16564 - 히오스 프로게이머 💠 (Python) / 실버 1 / 이분 탐색 (0) | 2022.10.30 |