ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [백준 9625번] BABBA (Java 풀이)
    Algorithm/기타 2020. 1. 18. 12:19

    백준알고리즘 9625번 : BABBA

     

    전 단계의 A값이 B가 되고, B값은 AB값이 된다.

     

    문제를 읽다보니, 피보나치 수열으로 풀어도 되겠다는 생각이 들었다.

    (B의 값은 결국 전 단계의 A와 B의 합이기 떄문에)

     

    1단계 :0 1
    2단계 :1 1
    3단계 :1 2
    4단계 :2 3
    5단계 :3 5
    6단계 :5 8 

     

    그러나 문제에서 주어진 조건대로 while문을 통해  풀어도 쉽게 풀릴 듯하여

    방향을 바꾸고 말았다만.

    A와 B의 갯수를 int 변수로 받았는데, 값이 덮여버리지 않도록 임시 변수를 선언하는 방식이

    유효하게 먹혔다. 마치 정렬에서도 A와 B의 순서를 바꿀때 임시 변수를 통해 값을 바꾸듯이.

     

     

     

     

     

    풀이 과정


    1. A의 갯수, B의 갯수를 저장한 int 변수를 선언 및 초기화한다.
    2. 미리 정의해둔 임시 변수 tmp에 기존 A변수의 값을 저장해둔 다음,
       A변수에 B변수 값을 넣고(B는 BA가 된다.)
       B변수에 임시변수 tmp값 + B변수 값을 넣는다.(A는 B가 되고, B는 BA가 된다.)
    3. K값까지 2번의 while문을 돌린다음, A변수와 B변수를 출력한다.

     

     

     

     

     

    소스 ▽

    더보기
    import java.util.Scanner;
    
    public class Main {// 9628번 BABBA
    
    	public static void main(String[] args) {
    		Scanner sc = new Scanner(System.in);
    		int K = sc.nextInt();
    		int strt = 0;
    		int calculateA = 1;// A는 B로 B는 AB로
    		int calculateB = 0;
    		int tmp;
    		while (strt != K) {
    			tmp = calculateA;
    			calculateA = calculateB;
    			calculateB += tmp;
    
    			strt++;
    		}
    
    		System.out.println(calculateA + " " + calculateB);
    	}
    }

     

     

     

     

     

    댓글

Designed by Tistory.