티스토리 뷰

728x90

 

 

쉬운 문제지만 하나의 함정이 있습니다.

처음 입력값을 3, 6, 9를 넣었을 때 변환을 하지 않아도 되기 때문에 결과가 0 YES가 나와야 합니다.

그 점만 신경쓰면서 구현만 하면 해결되는 문제입니다.

 

 

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
32
33
34
35
import java.io.*;
 
public class Main {
    public static void main(String args[]) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String str = br.readLine();
        br.close();
        String yn = "";
        long res = Integer.MAX_VALUE;
        int cnt = 0;
 
        if (str.length() != 1) {
            while (res / 10 != 0) {
                res = txn(str, 0);
                str = Long.toString(res);
                cnt += 1;
            }
        } else {
            res = Long.parseLong(str);
        }
 
        yn = res % 3 == 0 ? "YES" : "NO";
        System.out.println(cnt);
        System.out.println(yn);
    }
 
    private static long txn(String X, int i) {
        if (i == X.length()) {
            return 0;
        }
 
        return X.charAt(i) - '0' + txn(X, i + 1);
    }
 
}
cs

 

 

'코딩 > 자바 백준' 카테고리의 다른 글

백준 1384 메시지 (JAVA)  (0) 2021.07.06
백준 1408 24 (JAVA)  (0) 2021.06.29
백준 1568 새 (JAVA)  (0) 2021.06.27
백준 1912 JAVA (연속합)  (0) 2021.05.15
해시맵 복습 (완주하지 못한 선수) JAVA  (0) 2021.05.04
댓글