1110번: 더하기 사이클
0보다 크거나 같고, 99보다 작거나 같은 정수가 주어질 때 다음과 같은 연산을 할 수 있다. 먼저 주어진 수가 10보다 작다면 앞에 0을 붙여 두 자리 수로 만들고, 각 자리의 숫자를 더한다. 그 다음,
www.acmicpc.net
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
int firstNumber = Integer.parseInt(bf.readLine());
int count = 0;
if (firstNumber < 10) {
firstNumber = firstNumber * 10;
}
int result = firstNumber;
while (true) {
int one = result % 10;
int ten = result / 10;
int sum = one + ten;
result = one * 10 + sum % 10;
count += 1;
if (result == firstNumber) {
System.out.println(count);
break;
}
}
}
}
배운 점:
BufferedReader는 Scanner 대체로 사용할 수 있음.
BufferedReader는 Scanner와 다르게 Exception 처리가 안되어있어 따로 해줘야 함.
BufferedReader는 Enter만 경계로 인식, 공백으로 구분지을 땐 Stringtokenizer 활용.
BufferedReader는 버퍼가 가득 차거나 개행 문자가 나타나면 버퍼의 내용을 한 번에 프로그램에 전달.
그러하기 때문에 키를 누르는 즉시 바로 프로그램에 전달되는 Scanner에 비해 훨씬 빠름
(키를 누르는 즉시 바로 프로그램에 전달되면 전달되기까지의 과정이 계속 일어나기 때문에)
'Java > AlgorithmPS' 카테고리의 다른 글
백준) 부녀회장이 될테야(2775번) (0) | 2023.09.18 |
---|---|
백준) 단어 공부(1157번) (0) | 2023.09.17 |
프로그래머스) 최소 직사각형 자바 문제 풀이 (0) | 2023.06.23 |
프로그래머스) 3진법 뒤집기 자바 문제 풀이 (1) | 2023.06.19 |
프로그래머스) 하샤드 수 자바 문제 풀이 (0) | 2023.06.18 |