포스트

백준 16680 안수빈수 문제 풀이

문제 파악하기

수빈수는 자릿수의 합이 짝수인 정수, 안수빈수는 자릿수의 합이 홀수인 정수로 정의되었습니다.

문제에 제시되었듯 1093은 1 + 0 + 9 + 3 = 13, 홀수이므로 안수빈수라고 파악할 수 있습니다.

문제의 요구 사항은 어떤 N에 대해 N의 배수 중 안수빈수를 출력하거나 -1을 출력하는 것입니다.

문제 풀어보기

이 문제는 애드 혹 유형으로, 다음과 같은 특이한 수학적 성질을 가지고 있습니다.

  1. 1234000000 = 1234 * 1000000, 즉 1234000000는 1234의 배수이다.
  2. 1234000000 - 1234 = 1234 * (1000000 - 1) = 1233998766, 즉 1233998766는 1234의 배수이다.
  3. 1233998766의 각 자리 숫자의 합은 1 + 2 + 3 + 3 + 9 + 9 + 8 + 7 + 6 + 6 = 54 = 9 * 6이다.
    • 3.처리의 결과는 항상 9의 배수로 나타남을 확인할 수 있다.
  4. 3.처리의 결과를 9 * n으로 표현할 때, n이 홀수라면 안수빈수, 짝수라면 수빈수이다.

즉, 각각의 입력에 대해 다음과 같이 처리할 수 있습니다.

1
puts gets.to_i * (1e9.to_i - 1)

답안 구현

이 문제는 여느 애드 혹 유형과 마찬가지로 이 문제만의 특별한 규칙을 찾아내야 합니다.

16680 Ruby 답안