본문 바로가기
Problem Solving/Baekjoon

[백준] 10610 30 - Greedy / Java

by graycode 2022. 5. 24.

 문제 링크

 

10610번: 30

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

www.acmicpc.net

 

 풀이 과정

 

• 풀이 코드

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;

public class Main {

	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));

		String n = br.readLine();
		int[] arr = new int[10];
		
		int len = n.length();
		int sum = 0;
		for (int i = 0; i < len; i++) {
			int num = n.charAt(i) - '0';
			arr[num] += 1;
			sum += num;
		}

		if (n.contains("0") && sum % 3 == 0) {
			for (int i = 9; i >= 0; i--) {
				while (arr[i] > 0) {
					bw.write(i + "");
					arr[i]--;
				}
			}
		} else {
			bw.write(-1 + "\n");
		}

		bw.flush();
	}

}

댓글