본문 바로가기
알고리즘 문제연습/기초 알고리즘

[025] 더하기 사이클 (백준 1110번)

by 은z 2021. 6. 9.

문제

- N이 주어졌을 때 N의 사이클의 길이를 구하시오 (1<= N < 100)

 

 

입력 : 26

정답: 4

 

보완할 점

 

 

소스코드

public class Algorithm25 {

	public static void main(String[] args) {
		// 더하기 사이클
		 Scanner sc = new Scanner(System.in);
	      
	      System.out.print("숫자를 입력하세요 >> ");
	      String num = sc.next();
	      
	      int sum = 0;
	      int count = 0;
	      
	      //10보다 작은 경우
	      if(Integer.parseInt(num) < 10) {
	         num = "0" + num;  //숫자앞에 0붙여주기
	         
	         sum = (num.charAt(0)-'0') + (num.charAt(1)-'0'); //각 자리수값을 더해서 sum에 저장 0+5 = 5
		     count++;
		     String snum = "" + num.charAt(1) + (sum % 10); //결합
		     
	         while(!snum.equals(num)) {  //같으면 멈춰라
	        	 sum = (snum.charAt(0)-'0') + (snum.charAt(1)-'0'); //각 자리수값을 더해서 sum에 저장 0+5 = 5
			     count++;
			     snum = "" + snum.charAt(1) + (sum % 10); //결합
	         }
	         System.out.println("정답: " + count);
	         
	         
	      //10 이상 99이하   
	      }else {
	    	  sum = (num.charAt(0)-'0') + (num.charAt(1)-'0'); 
			  count++;
			  String snum = "" + num.charAt(1) + (sum % 10); //결합
			     
		      while(!snum.equals(num)) {  //같으면 멈춰라
		           sum = (snum.charAt(0)-'0') + (snum.charAt(1)-'0'); 
				   count++;
				   snum = "" + snum.charAt(1) + (sum % 10); //결합
		      }
		      System.out.println("정답: " + count);
	         
	      }
	}
}

댓글