쉬운 문제였는데 6+8 = 14 이후 1을 버리는 부분을 못보고 넘어가서 고전했다;
입력받는 수는 N, 십의 자릿수와 1의 자릿수를 a,b 사이클을 돌려서 새로 만들어진 수는 newN으로 설정한다.
newN의 초기값은 N이고, (b * 10) + (a + b) % 10 한 값을 새로 저장한 뒤 while문을 N과 같아질 때까지 돌리면 되겠다.
import java.util.Scanner;
public class Main {
public static void main(String[] args){
Scanner in = new Scanner(System.in);
int N = in.nextInt();
int newN = N, cycle = 0, a = 0, b =0; //a = 10의 자리 b=1의 자리
while(true) {
a = newN / 10;
b = newN % 10;
newN = (b * 10) + (a + b) % 10;
cycle++;
if(newN == N) break;
}
System.out.println(cycle);
}
}
'Study > 알고리즘' 카테고리의 다른 글
백준 1157번 - 단어 공부 JAVA (0) | 2022.07.28 |
---|---|
백준 1145번 - 적어도 대부분의 배수 JAVA (0) | 2022.07.27 |
백준 1075번 - 나누기 JAVA (0) | 2022.07.26 |
백준 1037번 - 약수 JAVA (0) | 2022.07.25 |
백준 1100번 - 하얀 칸 JAVA (0) | 2022.07.24 |