AMC 10 · 2007 · #21

학년 7 countingnumber-theory
base-conversiondigit-countingfundamental-counting-principle identify-subproblemscomplementary-counting ↑ 선수 지식: base-conversionfundamental-counting-principle
📏 긴 풀이 💡 4 개 인사이트
문제
주어진 상한까지의 모든 수를 3진법으로 쓴다. 그중 앞뒤로 똑같이 읽히는 것의 개수를 구하여라.

답을 골라 클릭하세요.

(A)
100
(B)
101
(C)
102
(D)
103
(E)
104
풀이 과정
전략 작은 문제로 쪼개기

상한 2007은 10 진법으로 쓰여 있어서 3 진법 자릿수에 대해 아무것도 알려주지 않는다. 그래서 Tool #15 (다르게 정리하기)가 말한다: 상한부터 3 진법으로 다시 써라. 그러면 7 자리가 되고, 이것이 문제를 둘로 쪼갠다 (Tool #7, 작은 문제로 쪼개기). 6 자리 이하의 문자열은 모두 상한보다 한참 아래라서 확인이 전혀 필요 없고 세기만 하면 된다. 게다가 회문은 앞쪽 절반으로 완전히 결정되므로 Tool #2 (빠짐없이 나열하기)로 각 길이를 곱셈 한 번에 셀 수 있다. 상한이 실제로 걸리는 것은 7 자리 문자열뿐인데, 그 개수는 54 개이고 그중 너무 큰 것이 살아남는 것보다 훨씬 적으므로, Tool #16 (관점 바꾸기)으로 버릴 것을 대신 센다. 두 개의 7 자리 문자열을 한 자리씩 비교하는 단계는 그냥 주장할 것이 아니라 증명해야 하는 단 하나의 지점인데, Tool #14 (극단의 원리)가 그것을 준다: 아래 자리를 아무리 크게 채워도 윗자리에서 한 단위 진 것을 만회할 수 없다.

1STEP 1

상한을 3진법으로 다시 쓰기

상한을 같은 진법으로 쓰면 어디서 걸리는지 보인다.

2007 = 2·3⁶ + 2·3⁵ + 0·3⁴ + 2·3³ + 1·3² + 0·3 + 0 = 2202100₃
2STEP 2

일곱 자리에서 자르기

짧은 자릿수는 범위 안에 완전히 들어간다.

1 … 728₆ 자리 이하, 전부 범위 안 | 729 … 2007₇ 자리, 여기서 상한이 문다
3STEP 3

앞쪽 절반으로 회문 세기

앞쪽 절반으로 세면 거기서 52개다.

2 + 2 + 6 + 6 + 18 + 18 = 52
4STEP 4

자리별 비교가 왜 정당한가

꼬리 전체가 넘칠 수 없어 자리별 비교가 정당하다.

2(3^k-1 + … + 3 + 1) = 3^k - 1 < 3^k
5STEP 5

너무 큰 일곱 자리 회문 버리기

너무 큰 긴 것들을 잘라 내면 48이 남는다.

54 - 2 · 3_{a=b=2, c ∈ {1,2}} = 48
6STEP 6

두 덩어리 더하기

더하면 100, 보기 (A).

52 + 48 = 100 → (A)
정답
100
선택지 다섯 개가 100부터 104 까지라서, 이 문제는 상한 근처의 작은 실수를 벌하도록 설계되어 있다 — 그러니 경계 덩어리가 다시 확인해야 할 대상이다. 가장 아슬아슬한 경우는 a = b = 2, c = 0, d = 2이고 그 값은 2202022₃ = 2006이다. 이것이 전체 범위에서 가장 큰 회문이며 2007 바로 하나 아래에 놓인다: 경계를 짧게 끊지도, 넘겨 세지도 않았다는 뜻이다. c = 0 인 세 개의 회문을 실수로 빠뜨리면 97이 되고, 7 자리 회문 54 개를 모두 남기면 106이 되는데, 둘 다 선택지에 아예 없다 — 제외한 6 개가 정확히 제외해야 할 것들이었다는 신호다. 또 2007 = 2202100₃은 0으로 끝나고 회문은 그럴 수 없으므로, 범위를 "2007 이하"로 읽든 "2007 미만"으로 읽든 결과는 같다. 규모 감각도 맞는다: 길이 L 인 회문은 대략 2 · 3^L/2 개라 빠르게 희박해지므로, 2187 아래에 대략 100 개라는 것은 타당한 자릿수다.
💡핵심 정리

회문은 앞쪽 절반을 두 번 쓴 것일 뿐이니 앞쪽 절반을 세면 된다 — 그리고 상한이 가장 긴 덩어리를 가로지를 때는, 들어맞는 많은 것보다 넘치는 몇 개를 세는 편이 대개 더 빠르다.

  • 상한을 3진법으로 다시 쓰기
  • 일곱 자리에서 자르기
  • 앞쪽 절반으로 회문 세기
  • 자리별 비교가 왜 정당한가
  • 너무 큰 일곱 자리 회문 버리기
  • 두 덩어리 더하기