알고리즘/백준

[파이썬, 자바] BOJ_9625(BABBA)

딱따구르리 2021. 3. 15. 20:14
728x90
반응형

문제

 

www.acmicpc.net/problem/9625

 

9625번: BABBA

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

www.acmicpc.net


 

해설

 

처음에 풀 때...

B -> BA -> BAB -> BABBA -> BABBAB -> BABBABBA

이렇게 계속 생겨나는 건 줄 알고 풀었다..ㅎ

다시 제대로 문제를 읽어보니

B -> BA로

A -> B로 바뀌는 거였다.

 

규칙을 정리해보면 

A는 이전 B의 개수를 따라가고

B는 이전 A + B의 개수를 따라가는 것을 알 수 있다.

결국 규칙을 한 번 손으로 정리만 해보면 쉽게 풀 수 있는 문제였다.


코드

 

-파이썬

#백준 9625(BABBA)

k = int(input())  #버튼 누르는 횟수
a = 0
b = 1

for _ in range(1, k):
    temp = a + b
    a = b
    b = temp

print(a, b)

 

-자바

//백준 9625(BABBA)
import java.io.*;
import java.util.*;

public class Boj_9625 {

	public static void main(String[] args) throws IOException{
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		
		int k = Integer.parseInt(br.readLine());
		
		int a = 0;
		int b = 1;
		
		for(int i = 1; i < k; i++) {
			int temp = a + b;
			a = b;
			b = temp;
		}
		
		System.out.println(a + " " + b);
	}

}
728x90
반응형