728x90
이번 코드의 중점은 알고리즘보다 JAVA의 기본 메소드 사용에 익숙해지는 데에 있다. 때문에 모든 언어에서 사용할 수 있는 알고리즘으로 구현한 코드와 JAVA 메소드를 사용한 코드 두가지를 보여주고자 한다. 모든 언어에서 사용할 수 있는 방법은 수학적으로 10의 자리와 1의 자리는 각 num / 10과 num % 10 이다. 즉, 숫자를 10으로 나눴을 때의 몫과 나머지로 나타낼 수 있다.
전체 성공 코드
1. JAVA 메소드를 사용한 방법
import java.util.Scanner;
public class Main
{
public static int sumValue(int N) {
String num = String.valueOf(N);
int sum_digit = 0;
for (int i = 0; i < num.length(); i++) {
sum_digit += Character.getNumericValue(num.charAt(i));
}
return sum_digit % 10;
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
int cnt = 0;
int new_N = N;
while (true) {
cnt++;
new_N = (new_N % 10) * 10 + sumValue(new_N);
if (new_N == N) break;
}
System.out.println(cnt);
}
}
2. JAVA 메소드를 사용하지 않은 방법
import java.util.Scanner;
public class Main
{
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
int cnt = 0;
int new_N = N;
while (true) {
new_N = (new_N % 10) * 10 + (new_N % 10 + new_N / 10) % 10;
cnt++;
if (new_N == N) break;
}
System.out.println(cnt);
}
}
결과화면
728x90
'공부 > 코딩 연습하기' 카테고리의 다른 글
[엘리스코딩][python] 도레미 파이썬 I 실력 확인 테스트 (47) | 2019.12.12 |
---|---|
[백준][C언어]2217번 로프 (0) | 2019.12.12 |
[백준][JAVA] 1463번 1로 만들기 (0) | 2019.10.06 |
[백준][JAVA] 10798번 세로읽기 (0) | 2019.10.01 |
[백준][JAVA] 2960번 에라토스테네스의 체 (0) | 2019.09.30 |
댓글