본문 바로가기

알고리즘/백준

[백준/1110/Java]더하기 사이클

[백준/1110/Java]더하기 사이클

풀이

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;

public class Main {
	public static void main(String[] args) throws IOException {
		
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
		
		String first = br.readLine();
		// 2자리 숫자가 아닐 경우 뒤에 0을 추가
		if(first.length() == 1) first += "0";
		
		int count = 0;
		String temp = first;
		
		while(true) {
			String[] arr = temp.split("");
			// 두 숫자 연산
			String next = String.valueOf(Integer.parseInt(arr[0]) + Integer.parseInt(arr[1]));
			
 			// 연산 결과가 10 이상일 경우 1의자리수만 취득 
			if(next.length() == 2) {
				next = next.substring(1, next.length());
			}
			
			temp = arr[1] + String.valueOf(next);
			
			count++;
            
			// 처리 결과값이 처음 취득한 값과 같을 경우 처리 종료
			if(first.equals(temp)) break;
		}
		bw.write(String.valueOf(count));		
		bw.flush();
		bw.close();
	}
}

후기

정수형으로만 써도 가능하지만 문자열로 변환해서 하는게 더 심플해 보여서 연산을 제외한 부분은 문자열로 처리해봤습니다.

728x90
반응형

'알고리즘 > 백준' 카테고리의 다른 글

[백준/1712/Java]손익분기점  (0) 2022.04.21
[백준/5622/Java]다이얼  (0) 2022.04.17
[백준/10809/Java]알파벳 찾기  (0) 2022.04.15
[백준/2753/Java]윤년  (0) 2022.04.11
[백준/14681/Java]사분면 고르기  (0) 2022.04.11