https://www.acmicpc.net/problem/10610
10610호: 30
어느 날 미르코는 우연히 길에서 양수엔을 보게 되었다.
미르코는 30이라는 숫자를 동경하기 때문에 길에서 찾은 숫자에 포함된 숫자를 섞어서 30의 배수인 가장 큰 숫자를 만들고자 했습니다.
www.acmicpc.net
해석 및 액세스
사고 과정
1. 0은 30의 배수입니다.
2. 예) 51240에서 0을 제외한 5,1,2,4의 합은 3의 배수여야 합니다.
흠 그럼 가
코드 및 설명
s = input() # 입력은 문자열로 받아준다
li = () # 문자열은 숫자로 변환하여 리스트에 담아줄거다.
verify_num = 0 # 합이 3의 배수인지 확인하기 위해 준비한다.
if '0' in s:
for i in range(len(s)):
li.append(int(s(i)))
li.sort(reverse=True) # 가장 큰 30의 배수가 필요하기 때문에 존재
for j in range(len(li)-1):
verify_num += li(j)
if verify_num % 3 == 0: # 3의 배수 규칙
for k in range(len(li)):
print(li(k), end='')
else:
print(-1)
else:
print(-1)