[Baeakjoon] while문 1110번: 더하기 사이클

2019. 7. 14. 18:19
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
import java.util.*;
 
public class Main {
    public static void main (String args[]) {
        
        Scanner scan = new Scanner(System.in);
        int S[] = new int[2]; //고정    
        int A[] = {00};
        int B[] = {00};
        int swich = 1//(S[0]==B[0])&&(S[1]==B[1])
        int cycle = 1;
        
        int first = scan.nextInt();
    
        S[0= first/10//처음 숫자의 십의자리
        S[1= first - (10 * S[0]); //처음 숫자의 일의 자리
 
        A[0= first/10//십의자리
        A[1= first - (10 * A[0]); // 일의 자리
        
        while(swich == 1) { //숫자가 같을 때까지 반복
            
            int number = A[0+ A[1];
            
            if(number<10) {
                B[0= A[1];
                B[1= number;
            } else {
                B[0= A[1];
                B[1= number - (10 * (number/10));
            }
            
            if((S[0]==B[0])&&(S[1]==B[1])) {
                swich = 0;
                break;
            } else {
                A[0= B[0];
                A[1= B[1];
                ++cycle;
            }
        }
        
        System.out.println(cycle);
    
    }
}
 

 

더하기 사이클에 대해 문제를 해결해보았다.

같은 숫자가 되었을 때를 판단하기 위해, 새로운 숫자를 조합하기 위해 자릿수별로 분리하여 10의 자리 숫자는 첫번째 인덱스인 인덱스 0에, 1의 자리 숫자는 두번째 인덱스인 인덱스 1에 넣음으로써 연산을 했다.

BELATED ARTICLES

more