반응형
1. 문제
어느 날, 미르코는 우연히 길거리에서 양수 N을 보았다. 미르코는 30이란 수를 존경하기 때문에, 그는 길거리에서 찾은 수에 포함된 숫자들을 섞어 30의 배수가 되는 가장 큰 수를 만들고 싶어한다.
미르코를 도와 그가 만들고 싶어하는 수를 계산하는 프로그램을 작성하라.
2. 입력
N을 입력받는다. N는 최대 105개의 숫자로 구성되어 있으며, 0으로 시작하지 않는다.
3. 출력
미르코가 만들고 싶어하는 수가 존재한다면 그 수를 출력하라. 그 수가 존재하지 않는다면, -1을 출력하라.
4. 풀이
N = input()
N = sorted(N, reverse=True)
sum = 0
if '0' not in N: #1
print(-1)
else :
for i in N: #2
sum += int(i)
if sum%3 !=0: #3
print(-1)
else :
print(''.join(N))
이 문제는 N에 입력값을 받고, 입력값에서 순서를 바꿔 30의 배수 중 가장 큰 것을 출력하는 문제입니다.
즉, 102를 입력받았을 때, 1과 0, 2를 이용하여 30의 배수 중 가장 큰 배수를 만드는 문제입니다.(210이 30의 배수)
* 30의 배수 : 30의 배수는 자리 수를 다 더해서 3의 배수가 되고, 맨 끝 자리가 0이면 된다.
#1 : 30의 배수를 구하는 방법 중 0이 없으면 -1을 출력
#2 : 30의 배수를 구하는 방법에서 자리 수를 더함
#3 : 3의 배수가 아니면 -1을 출력
반응형
'알고리즘 > 백준 알고리즘' 카테고리의 다른 글
백준 5543번 상근날드 파이썬(Python) (0) | 2020.03.06 |
---|---|
[백준 알고리즘] 백준 1120번 문자열 파이썬(Python) (0) | 2020.01.14 |
[백준 알고리즘] 백준 1541번 잃어버린 괄호 파이썬(Python) (0) | 2020.01.12 |
[백준 알고리즘] 백준 2875번 대회 or 인턴 파이썬(Python) (0) | 2020.01.10 |
[백준 알고리즘] 백준 2217번 로프 파이썬(Python) (1) | 2020.01.09 |
[백준 알고리즘] 백준 5585번 거스름돈 파이썬(Python) (0) | 2020.01.05 |
[백준 알고리즘] 백준 1931번 회의실배정 파이썬(Python) (0) | 2020.01.05 |
[백준 알고리즘] 백준 11047번 동전 0(Python) (0) | 2020.01.05 |
최근댓글