[백준 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)
  • 블로그 메뉴

    • 홈
  • 링크

  • 공지사항

  • 인기 글

  • 태그

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

  • 최근 글

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

티스토리툴바