-
[Java] BOJ 10610 30개발자 취업/코딩테스트 준비 2023. 6. 6. 20:45반응형
10610번: 30
어느 날, 미르코는 우연히 길거리에서 양수 N을 보았다. 미르코는 30이란 수를 존경하기 때문에, 그는 길거리에서 찾은 수에 포함된 숫자들을 섞어 30의 배수가 되는 가장 큰 수를 만들고 싶어한
www.acmicpc.net
정답 코드
- 3의 배수 : 각 자릿수의 합이 3의 배수인 수
- 30의 배수 : 각 자릿수의 합이 3의 배수인 수 + 0을 하나 이상 포함함
- 30의 배수 만족한다면 큰 수부터 작은 수 순서로 출력
import java.io.*; import java.util.*; public class Main { static BufferedReader br; static StringTokenizer st; static int[] arr; static char[] input; public static void main(String[] args) throws IOException { br = new BufferedReader(new InputStreamReader(System.in)); arr = new int[10]; input = br.readLine().toCharArray(); for (int i = 0; i < input.length; i++) { arr[(int) (input[i] - '0')]++; } System.out.println(able() ? getMax() : "-1"); } private static String getMax() { StringBuilder sb = new StringBuilder(); for (int i = 9; i >= 0; i--) { while (arr[i] > 0) { arr[i]--; sb.append(i); } } return sb.toString(); } private static boolean able() { if (arr[0] == 0) { return false; } int sum = 0; for (int i = 0; i < 10; i++) { sum += i * arr[i]; } return sum % 3 == 0 ? true : false; } }
'개발자 취업 > 코딩테스트 준비' 카테고리의 다른 글
[Java] BOJ 16198 에너지 모으기 (0) 2023.06.07 [Java] BOJ 1476 날짜 계산 (0) 2023.06.07 [Java] BOJ 1748 수 이어 쓰기 1 (0) 2023.06.06 [Java] BOJ 16948 데스 나이트 (0) 2023.06.06 [Java] BOJ 16937 두 스티커 (0) 2023.06.06