๐Ÿ“Œ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์ค€๋น„ :: ๋ฐฑ์ค€1769 :: ์žฌ๊ท€ - 3์˜๋ฐฐ์ˆ˜ ๐Ÿ‘€

Dev-Oยท2022๋…„ 1์›” 27์ผ
0

CodingTest

๋ชฉ๋ก ๋ณด๊ธฐ
5/18

๋ฌธ์ œ


ํ’€์ด

3์˜๋ฐฐ์ˆ˜

  • ๋ฌธ์ž์—ด ๊ฐ ์ž๋ฆฟ์ˆ˜๋ฅผ ๋”ฐ์„œ ๋”ํ•˜๊ณ  ํ•œ ์ž๋ฆฟ์ˆ˜๊ฐ€ ๋˜๋ฉด 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};//ํšŸ์ˆ˜์™€ ํ•ฉ ๋ฐ˜ํ™˜
			}	
		}

}
profile
Being Outstanding needs Understanding๐Ÿš€

0๊ฐœ์˜ ๋Œ“๊ธ€