본문 바로가기
Algorithm/Baekjoon

[백준] 1110번 : 더하기 사이클 - Java

by unknownomad 2022. 2. 28.

https://www.acmicpc.net/problem/1110

 

1110번: 더하기 사이클

0보다 크거나 같고, 99보다 작거나 같은 정수가 주어질 때 다음과 같은 연산을 할 수 있다. 먼저 주어진 수가 10보다 작다면 앞에 0을 붙여 두 자리 수로 만들고, 각 자리의 숫자를 더한다. 그 다음,

www.acmicpc.net



풀이

1. Scanner + while 문 + if 문

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
    
        Scanner in = new Scanner(System.in);
        int N = scan.nextInt();
        int tmp = N;
        int cnt = 0;
		
        while(true) {
            int left = tmp / 10;
            int right = tmp % 10;
            tmp = right * 10 + (left + right) % 10;
            
            cnt++;
            
            if(N == tmp) {
                break;
            }
        }
        System.out.println(cnt);
    }
}

 

2. Scanner + do-while 문

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
    
        Scanner in = new Scanner(System.in);
        int N = scan.nextInt();
        int tmp = N;
        int cnt = 0;
		
        do {
            int left = tmp / 10;
            int right = tmp % 10;
            tmp = right * 10 + (left + right) % 10;
            cnt++;
        } while(tmp != N);
        
        System.out.println(cnt);
    }
}

3. BufferedReader + while 문 + if 문

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

public class Main {
    public static void main(String[] args) throws IOException {
    
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int N = Integer.parseInt(br.readLine());
        int tmp = N;
        int cnt = 0;
		
        while(true) {
            int left = tmp / 10;
            int right = tmp % 10;
            tmp = right * 10 + (left + right) % 10;
            
            cnt++;
            
            if(N == tmp) {
                break;
            }
        }
        System.out.println(cnt);
    }
}

 

4. BufferedReader + do-while 문

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

public class Main {
    public static void main(String[] args) throws IOException {
    
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int N = Integer.parseInt(br.readLine());
        int tmp = N;
        int cnt = 0;
		
        do {
            int left = tmp / 10;
            int right = tmp % 10;
            tmp = right * 10 + (left + right) % 10;
            cnt++;
        } while(tmp != N);
        
        System.out.println(cnt);
    }
}

성능

  • BufferedReader > Scanner

댓글