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
'Algorithm > Baekjoon' 카테고리의 다른 글
[백준] 2577번 : 숫자의 개수 - Java (0) | 2022.03.03 |
---|---|
[백준] 10818번 : 최소, 최대 - Java (0) | 2022.03.02 |
[백준] 10951번 : A + B - 4 - Java (0) | 2022.02.23 |
[백준] 10952번 : A + B - 5 - Java (0) | 2022.02.23 |
[백준] 10871번 : X보다 작은 수 - 2 - Java (0) | 2022.02.23 |
댓글