본문 바로가기
python-algorithm

백준 10610 30

by 무적김두칠 2021. 12. 8.

1
2
3
4
5
6
7
8
9
10
11
s=input()
tmp=[]
for i in s:
    tmp.append(int(i))
flag_zero= (tmp.count(0)!=0)
flag_three= (sum(tmp)%3==0)
if flag_three and flag_zero:
    tmp=sorted(tmp, reverse=True)
    for i in tmp:
        print(i,end='')
else : print(-1)
cs

 

일단 30의 배수가 되려면
3의배수이면서 10의배수여야하는데요
flag_zero는 입력받은값에 0이 없으면 10의 배수를 만들지못함을 이용
flag_three는 각 자리수의 합이 3의 배수이면 그 수도 3의 배수라는걸 이용
문제에서 가장 큰 값을 원하니  정렬할때 reverse=True 옵션을 통해 역으로 해서 출력하면 됩니다

반응형

'python-algorithm' 카테고리의 다른 글

백준 11931 수 정렬하기 4  (0) 2021.12.08
백준 11728 배열 합치기  (0) 2021.12.08
백준 10384 팬그램  (0) 2021.12.08
백준 9417 최대 GCD  (0) 2021.12.08
백준 11004 k번째 수  (0) 2021.12.06

댓글