Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- Algorithm
- 라우터
- 완전탐색
- mysql
- sort
- 알고리즘
- 백준알고리즘
- BFS
- url parsing
- java
- 리액트
- 토이프로젝트
- 브루트포스
- ELB
- 서버구축
- nodejs
- 백준
- 자료구조
- 동적프로그래밍
- EventListener
- AWS
- 탐욕법
- 정렬
- 스터디
- Router
- spring
- 다익스트라 알고리즘
- EC2
- react
- Spring Boot
Archives
- Today
- Total
공부하는 블로그
Baekjoon | Q.1110 - 더하기 사이클 본문
입력받은 수를 각 자릿수끼리 더하여 나온 결과의 일의 자리 수가 다음 수의 일의 자리가 되고, 입력받은 수의 일의 자리 수가 다음 수의 십의 자리 수가 된다. 이와 같이 쭉 진행되다 입력받은 수와 같아질 경우 루프문을 종료키고 루프가 몇번 돌았는지 출력해내는 문제이다.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int input = sc.nextInt();
String a;
String b;
String num = input + "";
int w = 0;
while(true) {
if(num.length() == 1) {
a = "0";
b = num;
}else {
a = num.charAt(0) + "";
b = num.charAt(1) + "";
}
String sum = (Integer.parseInt(a) + Integer.parseInt(b)) + "";
num = b + sum.charAt(sum.length() - 1);
w++;
if(input == Integer.parseInt(num)) {
System.out.println(w);
break;
}
}
}
}
마지막 if문을 처음엔 문자열로 비교하다보니 입력 숫자(input)가 일의 자리 일 경우 사이클 결과 숫자(num)가 "0x"이 되어버리는 바람에 무한루프에 빠졌었다. int로 변환하여 비교해주니 해결되었다.
'알고리즘 공부' 카테고리의 다른 글
Baekjoon | Q.2577 - 숫자의 개수 (0) | 2019.12.20 |
---|---|
Baekjoon | Q.10951 - A + B 4 (0) | 2019.12.19 |
Baekjoon | Q.10871 - X보다 작은 수 (0) | 2019.12.18 |
Baekjoon | Q.2439 - 별찍기 2 (0) | 2019.12.18 |
Baekjoon | Q.10817번 : 세 수 (0) | 2019.12.18 |
Comments