728x90
더보기
망한코드
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
int[] num_2 = new int[2];
int[] arr_1 = new int[2];
int[] arr_2 = new int[2];
if(num<10) {
int i = 0;
while(true) {
arr_1[0] = 0;
arr_1[1] = num;
arr_2[0] = arr_1[0] + arr_1[1];
num_2[0] = arr_1[1];
num_2[1] = arr_2[0];
num_2[0] = arr_1[0];
num_2[1] = arr_1[1];
i++;
if(num == (10*num_2[0])+num_2[1]) {
System.out.print(i);
break;
}
}
}
else {
int k = 0;
while(true) {
arr_1[0] = num/10;
arr_1[1] = num%10;
arr_2[0] = (arr_1[0]+arr_1[1])/10;
arr_2[1] = (arr_1[0]+arr_1[1])%10;
num_2[0] = arr_1[1];
num_2[1] = arr_2[1];
arr_1[0] = num_2[0];
arr_1[1] = num_2[1];
k++;
if(num == (10*num_2[0])+num_2[1]) {
System.out.print(k);
break;
}
}
}
}
}
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc= new Scanner(System.in);
int N = sc.nextInt();
int cnt = 0;
int copy = N;
while (true) {
N = ((N % 10) * 10) + (((N / 10) + (N % 10)) % 10);
cnt++;
if (copy == N) {
break;
}
}
System.out.println(cnt);
}
}
쓸데없이 배열로 10의자리와 1의자리를 나누어 조작하다가 망한 문제.. 시간초과났다.
아마 알고리즘이 잘못돼서 루프가 끝나지 않고 계속 돌아가서겠지..
한방에 새로운 수 N을 구해낼 수 있는 알고리즘이 존재하는 문제다.
728x90
'백준 단계별' 카테고리의 다른 글
[Java] 백준 10871: X보다 작은 수 (0) | 2023.01.05 |
---|---|
[Java] 백준 10807: 개수 세기 (0) | 2023.01.05 |
[Java] 백준 10951: A+B - 4 (0) | 2023.01.05 |
[Java] 백준 10952: A+B - 5 (0) | 2023.01.04 |
[Java] 백준 2438: 별 찍기 - 1 (0) | 2023.01.04 |