๋ฌธ์์ด ๊ฐ ์๋ฆฟ์๋ฅผ ๋ฐ์ ๋ํ๊ณ ํ ์๋ฆฟ์๊ฐ ๋๋ฉด 3์ ๋ฐฐ์์ธ์ง ๊ฒ์ฌํ๋ฉด ๋๋ค.
์์ : String์ด Characterํ ๋ฐฐ์ด์ด๋ผ๋ ์ฌ์ค์ ์๋ฉด ํ์ด๊ฐ ์ฝ๋ค.
ํจ์ : ์กฐ๊ฑด์ด ๋ฐฑ๋ง์๋ฆฟ์๊ฐ ์ ๋ ฅ๋๋ค๋ ๊ฒ. Intํ์ผ๋ก๋ 10์ ๋ฐฑ๋ง์น ์ซ์๋ฅผ ๋ฐ์ ์ ์๋ค. -> ๋ฐ๋ผ์ String ํ์ ์ ์จ์ค์ผํ๋ค.
package Reculsive;
import java.util.Scanner;
public class MultipleOf3 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String num = sc.next();
int cnt = 0;
int[] cntAndsum = CountSum(num, cnt);
String YesOrNo = (cntAndsum[1]%3==0&&cntAndsum[1]!=0)? "YES": "NO";//๊ฐ ์๋ฆฟ์ ํฉ์ด 0์ด ์๋๊ฑฐ๋ 3์๋ฐฐ์์ด๋ฉด YES ์๋๋ฉด NO
System.out.println(cntAndsum[0]);//๋ช๋ฒ๋ํ๋์ง ์ถ๋ ฅ
System.out.println(YesOrNo);//YES NO ์ถ๋ ฅ
}
public static int[] CountSum(String num, int cnt) {
int sum = 0;
if(num.length()>1) {//10์ ์๋ฆฟ์ ์ด์ ์
๋ ฅ๊ฐ๋ค์ด์์๋
for(int i = 0 ; i < num.length() ; i ++) { //๊ฐ์๋ฆฟ์ ๋ํด์ฃผ๊ณ
sum += Integer.parseInt(num.charAt(i)+"");
}
num = sum+"";//๋ํ ์ซ์ num์ ๋ฐ์
cnt++;//ํ์์ถ๊ฐ
return CountSum(num, cnt);
}else {//1์ ์๋ฆฟ์๊ฐ ๋ค์ด์์ ๋ ํน์ ๊ณ์ ๋ํด์ 1์์๋ฆฟ์๊ฐ ๋ค์ด์จ๊ฒฝ์ฐ
sum = Integer.parseInt(num); //sum์ ๋ํ ์ซ์ num๋ง ๋ฃ์ด์ฃผ๊ณ ๋ฐ๋ณต๋ฌธ ์ข
๋ฃ
return new int[] {cnt, sum};//ํ์์ ํฉ ๋ฐํ
}
}
}