[백준/JAVA] 6378번 디지털 루트

정은아·2024년 11월 13일

[알고리즘] 수학 모음

목록 보기
128/152
post-thumbnail

문제

내 풀이

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {
    public static void main(String[] args) throws IOException {

        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringBuilder sb = new StringBuilder();

        // 무한 반복을 돌려서 숫자를 입력받는다.
        while (true){
            // 입력받는 숫자를 int 대신 String으로 입력받는다.
            // char 변수를 통해 한글자씩 받을 것이므로
            String str = br.readLine();

            // 0이 들어오면 종료한다.
            if (str.equals("0")){
                break;
            }else{
                // 다시 while을 돌려서 String의 길이가 1 미만이면 종료하게 한다.
                // 아닐 경우, forEach문을 통해 순회하며 sum에 더한다.
                while (str.length() > 1){
                    int sum = 0;

                    // 24의 경우, 2와 4로 분리하기 위해 toCharArray()를 사용한다.
                    for (char ch : str.toCharArray()) {
                        sum += ch - '0';
                    }

                    str = String.valueOf(sum);
                }

                sb.append(str).append("\n");
            }
        }

        System.out.println(sb.toString());
    }
}

느낀점

💡 toCharArray()란?

  • String 문자열을 char형 배열로 바꿔 반환해주는 메서드이다.
    ex. "EUNAH"라는 문자열의 경우
arr[0] = 'E'
arr[1] = 'U'
arr[2] = 'N'
arr[3] = 'A'
arr[4] = 'H'

위 값처럼 char 배열을 반환한다.

profile
꾸준함의 가치를 믿는 개발자

0개의 댓글