본문 바로가기
백준(Java)/23년 10월

[Java] 백준 - 10610번: 30

by C0MPAS 2023. 10. 25.

10월 25일(수) - 그리디 알고리즘 (10610번)

 

10610번: 30

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

www.acmicpc.net

ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ

 

문제점

ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ

 

풀이

(C언어 풀이 활용)

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

import java.util.ArrayList;
import java.util.Comparator;

public class Main {
    public static void main(String[] args) throws IOException{
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String N = br.readLine();

        ArrayList<Integer> list = new ArrayList<>();
        for(int i=0; i<N.length(); i++)
        {
            list.add(N.charAt(i) - '0');
        }

        if(list.contains(0) == false)
        {
            System.out.println(-1);
            return;
        }

        int sum = 0;
        for(int i=0; i<N.length(); i++)
        {
            sum = sum + list.get(i);
        }

        if(sum % 3 != 0 || sum == 0)
        {
            System.out.println(-1);
            return;
        }
        else
        {
            list.sort(Comparator.reverseOrder());
        }

        for(int i=0; i<N.length(); i++)
        {
            System.out.print(list.get(i));
        }
    }
}

ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ

'백준(Java) > 23년 10월' 카테고리의 다른 글

[Java] 백준 - 2193번: 이친수  (0) 2023.10.20
[Java] 백준 - 10026번: 적록색약  (0) 2023.10.18
[Java] 백준 - 11726번: 2 x n 타일링  (0) 2023.10.09

댓글