[BOJ10610] 30

문제 설명

문제 링크

코드 리뷰

30의 배수를 구하는 규칙만 알면 금방 풀 수 있는 문제였다.

30의 배수 판별법은 3의 배수이면서 1의자리수가 0이면 30의 배수가 된다.

3의 배수 판별법은 모든 자리의 합이 3의 배수이면 3의 배수가 된다.

오랜만이라 생각하는데 조금 시간이 걸렸지만, 다음에 다시 이런 문제가 나오면 기억해뒀다가 기계마냥 바로 구현해야겠다.

import java.io.*;
import java.util.*;

public class BOJ10610_30 {
	public static void main(String[] args) throws Exception {
		StringBuilder sb = new StringBuilder();
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		char[] ca= br.readLine().toCharArray();
		boolean flg = false;
		Arrays.sort(ca);
		int sum = 0;
		if(ca[0]=='0') flg = true;
		for(int i=0; i<ca.length; i++) {
			sum += ca[i];
		}
		if(sum%3==0 && flg) {
			sb.append(new String(ca)).reverse();
			System.out.println(sb);
		}else {
			System.out.println("-1");
		}
	}
}

댓글남기기