코딩테스트/BOJ

[BOJ] 9625 BABBA - JAVA

5월._. 2023. 6. 29.
728x90

1. 문제

 

9625번: BABBA

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

www.acmicpc.net

상근이는 길을 걷다가 신기한 기계를 발견했다. 기계는 매우 매우 큰 화면과 버튼 하나로 이루어져 있다.

기계를 발견했을 때, 화면에는 A만 표시되어져 있었다. 버튼을 누르니 글자가 B로 변했다. 한 번 더 누르니 BA로 바뀌고, 그 다음에는 BAB, 그리고 BABBA로 바뀌었다. 상근이는 화면의 모든 B는 BA로 바뀌고, A는 B로 바뀐다는 사실을 알게되었다.

버튼을 K번 눌렀을 때, 화면에 A와 B의 개수는 몇 개가 될까?


2. 풀이

처음에는 A 하나만 있으므로 count[0] = 1, count[1] = 0으로 시작한다.

N만큼 반복하면서 다음 A,B개수를 구한다.

다음 A 개수는 현재의 B개수와 동일하다.

다음 B 개수는 현재의 A개수 + 현재의 B개수와 동일하다.

현재 A->B로 변경, 현재 B->AB로 변경하기 때문이다.

마지막에 count[0], count[1]을 출력한다.

import java.io.*;

public class BOJ_9625_BABBA {
   public static void main(String[] args) throws IOException {
      int N = Integer.parseInt(new BufferedReader(new InputStreamReader(System.in)).readLine());
      int[] count = {1,0};
      int a,b;
      for(int i=0;i<N;i++){
         a = count[1];
         b = count[0]+count[1];
         count[0] = a;
         count[1] = b;
      }

      System.out.println(count[0]+" "+count[1]);
   }
}

3. 결과

'코딩테스트 > BOJ' 카테고리의 다른 글

[BOJ] 13301 타일 장식물 - JAVA  (0) 2023.07.01
[BOJ] 5557 1학년 - JAVA  (0) 2023.06.30
[BOJ] 1202 보석 도둑 - JAVA  (0) 2023.06.28
[BOJ] 1937 욕심쟁이 판다 - JAVA  (0) 2023.06.27
[BOJ] 11049 행렬 곱셈 순서 - JAVA  (0) 2023.06.26

댓글