[BOJ_6378 | while] 디지털 루트
2019. 1. 2. 12:07ㆍComputer Science/Problem Solving (PS)
while문의 사용에 익숙해져 있다면 해결하는데 큰 어려움을 겪지 않았을 문제였던 것 같다.
스트링으로 인풋을 입력받는데
0이면 인풋받는 while문을 빠져나오고
스트링을 캐릭터로 파싱해서 다 더해주는 단계를 밟았다.
다 더한 Integer값이 10미만이면 바로 출력하고
10보다 크다면 그때부터는 Integer를 다루는 digitalRoot함수에 집어넣어 문제를 해결하였다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | import java.util.*; public class BOJ_6378 { public static void main(String[] args){ Scanner input = new Scanner(System.in); while(true) { String num = input.next(); if(num.equals("0")) break; int sum = 0; for (int i = 0; i < num.length(); i++) { sum += (int) (num.charAt(i) - '0'); } if (sum < 10) System.out.println(sum); else { while (sum >= 10) { sum = digitalRoot(sum); } System.out.println(sum); } } } public static int digitalRoot(int n){ int sum = 0; while(n>0){ sum += n%10; n=n/10; }return sum; } } | cs |
반응형
'Computer Science > Problem Solving (PS)' 카테고리의 다른 글
[BOJ_1181 | compareTo] 단어 정렬 (0) | 2019.01.03 |
---|---|
[BOJ_3474 | Number Theory] 교수가 된 현우 (0) | 2019.01.02 |
[BOJ_4963 | DFS] 섬의 개수 (0) | 2019.01.02 |
[BOJ_6603 | recursive] 로또 (0) | 2019.01.02 |
[BOJ_5639 | Tree] 이진 검색 트리 (1) | 2019.01.02 |