[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이라는 수를 구했던 방법처럼
구할 수 있다.
이 방법 외에도 시간 내에 풀 수 있는 방법이 있는지 궁금하다.
:)
댓글
댓글 쓰기