가희의자기개발블로그

10610 백준 30 <그리디 알고리즘> 본문

프로그래밍 언어/알고리즘

10610 백준 30 <그리디 알고리즘>

가희gahui 2020. 6. 24. 18:06
반응형

https://www.acmicpc.net/problem/10610

 

10610번: 30

문제 어느 날, 미르코는 우연히 길거리에서 양수 N을 보았다. 미르코는 30이란 수를 존경하기 때문에, 그는 길거리에서 찾은 수에 포함된 숫자들을 섞어 30의 배수가 되는 가장 큰 수를 만들고 싶�

www.acmicpc.net

import java.util.Arrays;
import java.util.Collections;
import java.util.Scanner;

public class trente {

	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		String[] input = scan.nextLine().split("");
		Arrays.sort(input, Collections.reverseOrder());
		

		StringBuffer sb = new StringBuffer();
		
		for (String str : input) {
			sb.append(str);
		}
		int sum = 0;
		for(int i=0; i<input.length; i++) {
			sum += Integer.parseInt(input[i]);
		}
		
		if(sb.toString().indexOf("0") == -1 || sum%3 != 0) {
			System.out.println(-1);
		}else {
			System.out.println(sb.toString());
		}

	}

}

입력 받는 수가 int형이나 long형을 넘어가므로 int, long 자료형으로 받거나 parseInt parselong해주면 안된다.

30의 배수는 10의 배수와 3의배수의 조건을 충족하기 때문에 이걸 염두해 두고 풀어야 한다. 

반응형
Comments