μλ°(Java) - λνκΈ° μ¬μ΄ν΄
ν΄λΉ λ¬Έμ λ λ°±μ€ 1110λ² λ¬Έμ μ΄κ³ , λΈλ‘κ·Έμλ μ¬λ Έμλλ° μ€λ κ°μ¬λκ»μ μ΄ λ¬Έμ λ₯Ό λ΄μ£Όμ μ!
μ€λλ§μ λ€μ ν λ² λ νκ² λμμ΅λλ€.
λΈλ‘κ·Έμ μ¬λ¦΄κΉ λ§κΉ νλλ°, λλ¦μ λ μνμ°©μ€κ° μμ΄μ 볡기νκ³ μ μ¬λ €λ΄ λλ€.
1. λ¬Έμ
0λ³΄λ€ ν¬κ±°λ κ°κ³ , 99λ³΄λ€ μκ±°λ κ°μ μ μκ° μ£Όμ΄μ§ λ λ€μκ³Ό κ°μ μ°μ°μ ν μ μλ€. λ¨Όμ μ£Όμ΄μ§ μκ° 10λ³΄λ€ μλ€λ©΄ μμ 0μ λΆμ¬ λ μ리 μλ‘ λ§λ€κ³ , κ° μ리μ μ«μλ₯Ό λνλ€. κ·Έ λ€μ, μ£Όμ΄μ§ μμ κ°μ₯ μ€λ₯Έμͺ½ μ리 μμ μμμ ꡬν ν©μ κ°μ₯ μ€λ₯Έμͺ½ μ리 μλ₯Ό μ΄μ΄ λΆμ΄λ©΄ μλ‘μ΄ μλ₯Ό λ§λ€ μ μλ€. λ€μ μλ₯Ό 보μ.
26λΆν° μμνλ€. 2+6 = 8μ΄λ€. μλ‘μ΄ μλ 68μ΄λ€. 6+8 = 14μ΄λ€. μλ‘μ΄ μλ 84μ΄λ€. 8+4 = 12μ΄λ€. μλ‘μ΄ μλ 42μ΄λ€. 4+2 = 6μ΄λ€. μλ‘μ΄ μλ 26μ΄λ€.
μμ μλ 4λ²λ§μ μλ μλ‘ λμμ¬ μ μλ€. λ°λΌμ 26μ μ¬μ΄ν΄μ κΈΈμ΄λ 4μ΄λ€.
Nμ΄ μ£Όμ΄μ‘μ λ, Nμ μ¬μ΄ν΄μ κΈΈμ΄λ₯Ό ꡬνλ νλ‘κ·Έλ¨μ μμ±νμμ€.
2. μ λ ₯
첫째 μ€μ Nμ΄ μ£Όμ΄μ§λ€. Nμ 0λ³΄λ€ ν¬κ±°λ κ°κ³ , 99λ³΄λ€ μκ±°λ κ°μ μ μμ΄λ€.
3. μΆλ ₯
첫째 μ€μ Nμ μ¬μ΄ν΄ κΈΈμ΄λ₯Ό μΆλ ₯νλ€.
첫 λ²μ§Έ μ½λ
import java.util.ArrayList;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
int cnt = 0;
ArrayList<Character> numArr = new ArrayList<>();
Scanner sc = new Scanner(System.in);
String num = sc.next();
for (int i = 0; i < num.length(); i++) {
if (num.length() == 1) {
for (int j = 0; j < 2; j++) {
numArr.add(0, '0');
numArr.add(1, num.charAt(i));
break;
}
} else numArr.add(num.charAt(i));
}
while(true) {
int a = (int) (numArr.get(0) - '0');
int b = (int) (numArr.get(1) - '0');
int c = a + b;
int d;
if (c < 10) {
d = (b * 10) + c;
} else d = (b * 10) + (c % 10);
numArr.clear();
numArr.add((char) (d / 10 + (int) '0'));
numArr.add((char) (d % 10 + (int) '0'));
cnt++;
if(((int)numArr.get(0) - '0') * 10 + ((int)numArr.get(1) - '0') % 10 ==
((int)num.charAt(0) - '0') * 10 + ((int)num.charAt(1) - '0') % 10) break;
}
System.out.println(cnt);
}
}
π€ μΈκ°μ μ λκ°μ μ€μλ₯Ό νλκ±ΈκΉ.
μ λ²μλ StringμΌλ‘ λ°μμ λ¬Έμ λ₯Ό μ΄λ ΅κ² κΌ¬λλ
μ΄λ²μ λ StringμΌλ‘ λ°μμ μ½λλ₯Ό λλ½κ² μ§°λ€. (μμ΄λΌλ Έ μμ΄λΌλ Έ
κ°λ§ν μ§μΌλ³΄λ€κ° κ΅³μ΄ μ΄λ΄ νμκ° μμ΄μ λν μμ νλ€.
λ λ²μ§Έ μ½λ
import java.util.ArrayList;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
int cnt = 0;
Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
int tmp = num;
int newNum;
while(true) {
newNum = ((num % 10) * 10) + ((num / 10 + num % 10) % 10);
cnt++;
num = newNum;
if(newNum == tmp) break;
}
System.out.println(cnt);
}
}
π€ μ¬κΈ°μ μ€μν건 tmpμ num κ°μ λ£μ΄μ€μΌ whileλ¬Έ νμΆν μ μλ€.
(numμ κ³μ κ°μ΄ λ°λλ 쑰건문μ numμΌλ‘ λ£μΌλ©΄ μμν λͺ» λΉ μ Έ λμ΄!)