업데이트:

카테고리: ,

1. 문제

문제는 링크에 들어가면 있다.

2. 정답 코드

문제의 내 정답 코드는 다음과 같다.

import sys
read = sys.stdin.readline
N = [i for i in read()]
N.pop()

if not str(0) in N:
    print(-1)
else :
    summation = 0
    for j in N :
        summation += int(j)
    if summation % 3 == 0 :
        N.sort(reverse=True)
        print(''.join(N))
    else :
        print(-1)




3. 문제 풀이

3의 배수는 각자리의 합이 3의 배수인 것만을 기억하면 쉽게 풀 수 있는 문제다.

문제를 조건을 나누면 되는데,

  1. 30의 배수가 되려면 일단 무조건 0이 필요하므로 0이 없으면 30의 배수가 될 수 없음
  2. 1의 자리에 0을 배치한다 생각하고, 각 자리의 합이 3의 배수면 이것은 30의 배수가 될 수 있다.
  3. 그 외에는 -1을 출력

최대 1 분 소요