알고리즘
백준 #1110 java 2023.01.11
chaewonni
2023. 1. 11. 00:28
더하기 사이클 문제!
처음 보고서는 꽤나 번거롭겠군 생각했지만 막상 풀다보니 재밌었다.
package boj_basic.step3;
import java.util.Scanner;
public class Q1110 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
int NUM = 0;
int i = 0;
NUM = (num%10)*10 + ((num/10 + num%10)%10);
while(true) {
if(NUM!=num) {
NUM = (NUM%10)*10 + ((NUM/10 + NUM%10)%10);
i++;
}
else {
if(NUM == num);
break;
}
}
System.out.println(i+1);
}
}
근데 풀면서도 내가 더럽게 풀고 있구나... 지금 내 코드가 되게 더럽구나...를 확실히 느낄 수 있었다..
어거지로 맞추긴 했지만 뭔가 더 좋은 풀이방법이 있겠다 싶어 다른 분들의 코드를 참고해보았는데..
package boj_basic.step3;
import java.util.Scanner;
public class Q1110_1 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
int i = 0;
int copy = num;
while(true) {
num = ((num%10)*10) + ((num/10) + (num%10)) %10;
i++;
if(copy == num) {
break;
}
}
System.out.println(i);
}
}
확실히 깔끔하다.....
나처럼 NUM을 만들어 처음에 계산시키고 나중에 i+1을 하는 방법보단
그냥 간단하게 copy=num으로 숫자를 복사해주면 될 일이었다!!!
최대한 깔끔한 코드를 만들 수 있도록 계속해서 노력해봐야겠다.