728x90
반응형
생각보다 쉬운 문제이다. 30의 배수이려면 일단 맨 마지막 자리의 숫자가 0이어야 한다.
그리고 3의 배수인지 확인하는 방식과 동일하게 30의 배수는 각 자리 숫자들의 합이 3의 배수이어야 한다.
이 점들과 정렬을 사용하면 문제를 정말 쉽게 풀 수 있다.
숫자 안에 0이 안 들어있으면 어차피 30의 배수가 안되고, 0이 들어있어도 각 자리 숫자들의 합이 3의 배수가 아니면 어차피 30의 배수가 아니기에, 그냥 입력을 내림차순 정렬한 수가 30의 배수이면 출력, 아니면 -1을 출력해주면 된다.
EX) n = 102 -> 210 -> 210%30 == 0 -> Ok!
EX) n = 2931 -> 9321 -> 9321%30 != 0 -> No!
s = sorted(input(), reverse=True)
n = int(''.join(s))
print(n if n % 30 == 0 else -1)
728x90
반응형
'Agorithm > 백준 알고리즘' 카테고리의 다른 글
백준 알고리즘 10431번 줄세우기(python) (0) | 2021.02.21 |
---|---|
백준 알고리즘 2628번 종이자르기(python) (0) | 2021.02.21 |
백준 알고리즘 2947번 나무 조각(python) (0) | 2021.02.21 |
백준 알고리즘 2693번 N번째 큰 수(python) (0) | 2021.02.21 |
백준 알고리즘 13311번 행운의 편지(python) (0) | 2021.02.21 |