본문 바로가기
PS/BOJ

[자바] 백준 1110 - 더하기 사이클 (boj java)

by Nahwasa 2022. 5. 11.

문제 : boj1110

 

 

  문제에서 요구하는 대로 구현을 하면 된다. 과정을 정리하면 다음과 같다.

  제시된 대로 시뮬레이션 하면서 몇 회 진행됬는지 세기만 하면 되므로 별다른 알고리즘적인 지식은 필요없다. 일반적으로 숫자 그 자체로 연산해서 구하는 방법과, 문자열로 보고 구하는 방법이 있을 것이다. 이하 코드1과 코드2에 두 가지 방법을 모두 구현했으니 코드를 참고해서 구현해보자.

 

 

코드1 (정수로 구하기) : github

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

public class Main {
    private void solution() throws Exception {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        int n = Integer.parseInt(br.readLine());
        int tmp = n;
        int cnt = 0;
        do {
            cnt++;
            int a = (tmp/10)%10;
            int b = tmp%10;
            tmp = b*10+(a+b)%10;
        } while (tmp != n);
        bw.write(cnt+"");
        bw.flush();
    }
    public static void main(String[] args) throws Exception {
        new Main().solution();
    }
}

 

 

코드2 (String으로 구하기) : github

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));
		
		int in = Integer.parseInt(br.readLine());
		String n = ""; 
		
		if (in < 10)
			n = "0" + in;
		else 
			n+= in;
		
		int cnt = 1;
		String tmp = n.toString();
		
		for(;;cnt++) {
			tmp = method(tmp);
			if (tmp.equals(n))
				break;
		}
		
		bw.write(cnt + "\n");
		
		bw.flush();
		br.close();
		bw.close();
		
	}
	
	private static String method(String n) {
		int left = n.charAt(0) - '0';
		int right = n.charAt(1) - '0';
		
		int tmp = left + right;
		if (tmp >= 10)
			tmp %= 10;
		
		return "" + right + tmp;
	}
}

 

댓글