[풀이]
- 30의 배수가 되려면 먼저, 30은 2 * 5 * 3으로 되어있기에 일의 자리가 필수적으로 0이어야 합니다.
- 두번재로는 각 자리수의 합이 3의 배수여야 합니다.
- 위 두 조건을 if 조건문으로 처리후, 만약 30의 배수일 경우에는 역순으로 정렬을 하여 StringBuffer을 통해 출력하였습니다.
[코드]
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.Collections;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuffer sb = new StringBuffer();
String N = br.readLine();
int tempSum = 0;
Integer[] arr = new Integer[N.length()];
if (N.contains("0")) {
for (int i = 0; i < N.length(); i++) {
int tempValue = Integer.parseInt(String.valueOf(N.charAt(i)));
tempSum += tempValue;
arr[i] = tempValue;
}
if (tempSum % 3 == 0) {
Arrays.sort(arr, Collections.reverseOrder());
for (int i = 0; i < arr.length; i++) {
sb.append(arr[i]);
}
} else {
sb.append(-1);
}
} else {
sb.append(-1);
}
System.out.println(sb);
}
}
'Algorithm > 백준' 카테고리의 다른 글
백준 3273번 : 두 수의 합(Java) (0) | 2021.09.05 |
---|---|
백준 1302번 : 베스트셀러(Java) (0) | 2021.09.05 |
백준 5052번 : 전화번호 목록(Java) (0) | 2021.09.04 |
백준 2822번 : 점수 계산(Java) (0) | 2021.09.04 |
백준 18310번 : 안테나(Java) (0) | 2021.09.03 |