1. 문제
https://www.acmicpc.net/problem/6378
2. 풀이
- 예제 입력에 최대 1000자리까지 조건이 있어서 String으로 활용하여 풀이하였다.
- 몇 개의 숫자가 들어올지 모르니 while문에 true로 조건을 주었다.
- String으로 입력을 받고 문제에 입력의 마지막 줄은 0으로, 입력한 값이 0이면 멈춘다는 것을 알 수 있다.
- 중간에 while문을 true 조건을 주고 문자열 길이가 한자릿수 라면 break를 하고 그 값을 출력하게 조건을 주었다.
- 길이가 한자리 보다 크다면 안에 for문을 만들고 charAt을 사용하여 한 글자씩 쪼개어 아스키코드 값 0을 기준으로 빼서 그 값을 sum변수에 대입하여 더한다.
- 값이 int형 이므로 형 변환을 하고 입력했던 값에 대입하고, 그 값을 출력한다.
3. 코드
package baekjoon;
import java.util.Scanner;
public class Q6378 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
while (true) {
String str = scanner.next();
if (str.equals("0")) { // 문자열 길이가 0 이면 break
break;
}
while (true) {
int sum = 0; // 더한 값 저장 할 변수
if (str.length() < 2) { // 문자열 길이가 두자릿 수 보다 작으면
break;
} else {
for (int i = 0; i < str.length(); i++) {
sum += str.charAt(i) - 48;
}
}
str = String.valueOf(sum);
}
System.out.println(str);
}
}
}
'Algorithm' 카테고리의 다른 글
[Java] 백준 1100번 : 하얀 칸 (0) | 2022.03.10 |
---|---|
[Java] 백준 21312번 : 홀짝 칵테일 (0) | 2022.03.08 |
[Java] 백준 9366번 : 삼각형 분류 (0) | 2022.03.02 |
[Java] 백준 2309번 : 일곱 난쟁이 (0) | 2022.02.23 |
[Java] 백준 2495번 : 연속구간 (0) | 2022.02.19 |