-
알고리즘: 백준 10610번 30 (feat. Python)알고리즘/백준(BaekJoon) 2020. 8. 8. 17:55
백준 10610번 링크입니다.
https://www.acmicpc.net/problem/10610
10610번: 30
문제 어느 날, 미르코는 우연히 길거리에서 양수 N을 보았다. 미르코는 30이란 수를 존경하기 때문에, 그는 길거리에서 찾은 수에 포함된 숫자들을 섞어 30의 배수가 되는 가장 큰 수를 만들고 싶�
www.acmicpc.net
30의 배수가 되기 위한 조건은 어떤수 N이 10의 배수이고 3의 배수인 경우이다.
- N이 10의 배수가 되기 위한 조건 = N안에 0이 포함되어 있으면 성립
- N이 3의 배수가 되기 위한 조건 = N의 모든 자리수를 더했을 때 3의 배수이면 성립
이 두 조건만 성립하면 최대값은 N을 그냥 그대로 내림차순 정렬한 값이다.
import sys input = sys.stdin.readline n = input() num_list = [0 for _ in range(len(n) - 1)] for i in range(len(n) - 1): num_list[i] = int(n[i]) if 0 not in num_list or sum(num_list) % 3 != 0: print(-1) else: num_list.sort(reverse=True) num_str = "" for i in num_list: num_str += str(i) print(num_str)
30 30
102 210
2931 -1
80875542 88755420
반응형'알고리즘 > 백준(BaekJoon)' 카테고리의 다른 글
알고리즘: 백준 1018번 체스판 다시칠하기(feat. c++) (0) 2020.08.18 알고리즘: 백준 1037번 약수(feat. c++) (0) 2020.08.18 알고리즘: 백준 2217번 로프 (feat.Python) (0) 2020.08.08 알고리즘: 백준 1932번 회의실 배정 (feat.Python) (0) 2020.08.08 알고리즘: 백준 11047번 동전0 (feat.Python) (0) 2020.08.08