백준 10610번 -python
그리디알고리즘
n=list(str(input()))
n=list(map(int,n))
sum=0
for i in range(len(n)):
sum+=n[i]
if not (sum%3) and 0 in n :
n.sort()
n.reverse()
n=list(map(str,n))
n=''.join(n)
print(int(n))
else :
print(-1)
30의 배수는 3*10의 배수이다. 즉 3의 배수이면서 10의 배수여야한다.
3의 배수는 모든 자릿수의 값의 합이 3의 배수 일 때, 3의 배수이다. 따라서 모든 자리의 자릿수를 더한 후, 3으로 나누어 나머지가 나오지 않는다면 3의 배수가 아니다. 또한 10의 배수는 1의 자리의 수가 0 이여야 한다. 결과로 모든 자리수의 합이 3으로 나눠지면서 끝자리수가 0 인 값이 입력한 n에 대한 30의 배수의 값을 만들어 낼 수 있다. 그렇게 나온 결과를 내림차순으로 정렬하면 답이된다.
Author And Source
이 문제에 관하여(백준 10610번 -python), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@onenewarm/백준-10610번-python저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)