[백준 10610] 30

2021. 5. 5. 22:04·알고리즘 문제풀이

www.acmicpc.net/problem/10610

 

10610번: 30

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

www.acmicpc.net

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.Comparator;

public class BJ10610 {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String[] sList = br.readLine().split("");
        int l = sList.length;
        int[] nums = new int[l];
        int total = 0;

        boolean chZero = false;
        for (int i = 0; i < l; i++) {
            if(sList[i].equals("0")){
                chZero = true;
            }
            total += Integer.parseInt(sList[i]);
        }

        if(!chZero){
            System.out.println(-1);
        }
        else{
            if(total%3 != 0){
                System.out.println(-1);
            } else{
                Arrays.stream(sList).sorted(Comparator.reverseOrder())
                        .forEach(System.out::print);
            }

        }
    }
}

풀이

30의 배수에는 규칙이 있다.

 

일단 10의 배수여야 하니 0을 포함해야 하고,

3의 배수여야 하니 각 자리수를 더한 합이 3의 배수여야 한다.

 

※각 배수들의 규칙

  • 2의 배수 판별법: 일의 자리수가 0,2,4,6,8 이면 2의 배수이다.
  •  
  • 3의 배수 판별법: 각 자리수의 합이 3의 배수이면 3의 배수이다.
  •  
  • 4의 배수 판별법: 끝의 두자리 수가 00이거나 4의 배수이면 4의 배수이다.
  •  
  • 5의 배수 판별법: 일의 자리수가 0,5 이면 5의 배수이다.
  •  
  • 6의 배수 판별법: 짝수이고, 각 자리수의 합이 3의 배수이면 6의 배수이다.
  •  
  • 8의 배수 판별법: 끝의 세자리 수가 000이거나 8의 배수이면 8의 배수이다.
  •  
  • 9의 배수 판별법: 각 자리수의 합이 9의 배수이면 9의 배수이다.

시간복잡도

O(N)

'알고리즘 문제풀이' 카테고리의 다른 글

[백준 2257] 화학식량  (0) 2021.05.07
[백준 5347] LCM (최소공배수)  (0) 2021.05.07
[2019 카카오 개발자 겨울 인턴십] 불량 사용자  (0) 2021.05.05
[백준1238] 파티  (0) 2021.05.05
[백준14465] 소가 길을 건너간 이유 5  (0) 2021.05.05
'알고리즘 문제풀이' 카테고리의 다른 글
  • [백준 2257] 화학식량
  • [백준 5347] LCM (최소공배수)
  • [2019 카카오 개발자 겨울 인턴십] 불량 사용자
  • [백준1238] 파티
WildDevmon
WildDevmon
『앗! 야생의 개발몬(이)가 나타났다!』
  • WildDevmon
    야생의 개발몬
    WildDevmon
  • 전체
    오늘
    어제
    • 분류 전체보기 (35)
      • Server (5)
      • 알고리즘 문제풀이 (27)
      • 회고 (3)
  • 블로그 메뉴

    • 홈
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    백준 인형들
    자바 물리 메모리
    백준15954
    컴공 취준
    백준 17281
    합승 택시 요금
    경력 서류
    자바 최소공배수
    백준 경쟁적 전염
    백준 고층 건물
    백준 18405
    백준 1027
    자바 스레드 상태
    백준 램프
    백준 1034
    백준 1114 파이썬
    백준1238
    소가 길을 건너간 이유 5
    2020 카카오 인턴
    백준 1114
    terminationGracePeriodSeconds
    백준 5347
    백준2262
    카카오 필요스펙
    ai개발자
    소수&팰린드롬
    백준 1004
    자바 최대공약수
    선발 명단
    graceful shutdown
    백준14465
    통나무 자르기
    파이썬
    우아한 종료
    백준1747
    백준 30
    커널 스레드 상태
    preStop
    네이티브 메모리
    자바 프로세스 종료
    direct buffer
    코틀린 코루틴
    백준 10610
    1114백준
    백준1188
    백준 어린 왕자
    다이렉트 버퍼
    백준6980
    네카라쿠배 취업
    백준 파티
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
WildDevmon
[백준 10610] 30
상단으로

티스토리툴바