[PS] BOJ 10610번 30
https://www.acmicpc.net/problem/10610 Silver 5 라는 난이도 보다는 체감상 어려웠던 문제이다. 이 문제를 풀면서, 30의 배수를 어떻게 빠른 시간내에 판단할 수 있을까를 고민했다. 30의 배수는 3의 배수이면서 10의 배수인지를 판단하면 되는데, 10의 배수를 판단하는 방법은 0이 하나라도 있는지 보면 알 수 있어서 간단했다. 3의 배수가 관건이었는데, 3의 배수는 각 자릿수의 합을 다 더해도 3의 배수 꼴로 나타난다. 이렇게 주어진 수가 30의 배수임을 알게 되면, 내림차순으로 정렬해도 30의 배수가 된다. 추가적으로 이 문제를 풀면서, 각 자릿수의 합이 어떤 규칙을 갖는지 알아보았다. 3 6 9 12 15 18 21 24 27 30... 3 6 9 3 6 9 3 6 9... (각 자리수의 합이 3의 배수꼴로 나타남) 9 18 27 36 45 54 63 72 81 90... 162... 6147 9 9 9 9 9 9 9 9 9... (각 자리수의 합이 9의 배수꼴로 나타남) 3, 9 가 이러한 문제로 응용될 수 있겠다. 생각해보면, 90의 배수는 9의 배수와 10의 배수를 만족시켜야 한다. 그런데 9의 배수는 3의 배수이므로 저 문제에서 주어진 30이라는 수를 구했던 방법처럼 구할 수 있다. 이 방법 외에도 시간 내에 풀 수 있는 방법이 있는지 궁금하다. :)