이 문제를 받으면 d\(d\)를 하나 정해 놓고 가능한 c\(c\)를 앞에서부터 세어 볼 수 있다. 예를 들어 d=4\(d=4\)이면 c=1,2,3,4\(c=1,2,3,4\)이고, 각각의 c\(c\)에 대해 a,b\(a,b\)는 모두 c\(c\) 이하의 자연수이다.
따라서 d=4\(d=4\)일 때는 c=1,2,3,4\(c=1,2,3,4\)에서 차례로 12,22,32,42\(1^2,2^2,3^2,4^2\)가지가 나온다. d=5\(d=5\)로 가면 여기에 52\(5^2\)이 하나 더 붙는다. 이렇게 보면 계산 자체는 바로 되지만, 같은 c2\(c^2\)이 여러 줄에서 반복해서 나타난다는 점이 먼저 보인다.
그 반복을 보면 세는 기준을 c\(c\) 쪽으로 옮기는 편이 자연스럽다. c\(c\)는 a,b\(a,b\)의 공통 상한이고, 동시에 d\(d\)의 하한이다. 가운데에 있는 c\(c\)를 고정하면 나머지 세 변수가 각각 몇 가지인지 한 번에 정리된다.
c\(c\)를 하나 고정하고 세 변수를 따로 세어 보자
조건을 한 줄씩 떼어 쓰면 다음과 같다.
a≤c,b≤c,c≤d\[a\le c,\qquad b\le c,\qquad c\le d\]
이제 c\(c\)가 1\(1\)부터 6\(6\)까지 중 하나로 정해졌다고 하자.
먼저 a\(a\)는 1,2,…,c\(1,2,\ldots,c\) 중에서 고를 수 있으므로 c\(c\)가지이다. b\(b\)도 똑같이 1,2,…,c\(1,2,\ldots,c\) 중에서 고를 수 있으므로 c\(c\)가지이다.
여기서 한 번 확인할 점은 a\(a\)와 b\(b\) 사이의 관계이다. 문제는 a≤c\(a\le c\), b≤c\(b\le c\)만 요구하고, a≤b\(a\le b\)나 b≤a\(b\le a\)를 요구하지 않는다. 그래서 a\(a\)를 고른 뒤에도 b\(b\)는 다시 1\(1\)부터 c\(c\)까지 자유롭게 고를 수 있다. 즉 (a,b)\((a,b)\)는 순서 있는 두 자리로 세어 c⋅c=c2\(c\cdot c=c^2\)가지이다.
남은 d\(d\)는 c≤d≤6\(c\le d\le 6\)을 만족해야 하므로 c,c+1,…,6\(c,c+1,\ldots,6\) 중에서 고른다. 그 개수는 6−c+1=7−c\(6-c+1=7-c\)가지이다.
따라서 c\(c\)가 정해졌을 때 만들어지는 (a,b,c,d)\((a,b,c,d)\)의 개수는 c2(7−c)\(c^2(7-c)\)이다.
c=1\(c=1\)부터 6\(6\)까지 빠짐없이 더하자
이제 c\(c\)의 값만 바꾸어 더하면 된다. c\(c\)를 고정해서 세고 있으므로 서로 다른 c\(c\)에서 나온 경우가 겹칠 수 없다. 또한 어떤 (a,b,c,d)\((a,b,c,d)\)도 자신의 c\(c\)값을 하나만 가지므로 빠지는 경우도 없다.
이 문제는 a\(a\)와 b\(b\)의 크기 관계로 나누어 세는 방법도 가능하다. 예를 들어 a≤b≤c≤d\(a\le b\le c\le d\)인 경우와 b≤a≤c≤d\(b\le a\le c\le d\)인 경우를 세면, a=b≤c≤d\(a=b\le c\le d\)인 경우가 두 번 들어가므로 한 번 빼야 한다.
이 분류도 맞지만, 처음부터 a,b\(a,b\)의 크기 관계를 나누면 겹치는 부분을 따로 처리해야 한다. 반대로 c\(c\)를 고정하면 a,b\(a,b\)를 순서 있는 두 자리로 바로 세기 때문에 겹침 조정이 생기지 않는다. 이 문제에서 c\(c\)를 먼저 잡는 이유는 계산이 짧아서만이 아니라, 중복과 누락을 동시에 피하게 해 주기 때문이다.
이 문항에서 어려웠던 지점
조건이 두 줄로 주어졌지만 실제로는 c\(c\)가 가운데에서 세 변수의 범위를 동시에 정한다. a,b\(a,b\)는 c\(c\) 이하에서 독립적으로 움직이고, d\(d\)는 c\(c\) 이상에서 움직인다. 경우의 수 문제에서 어떤 문자가 여러 조건의 공통 경계로 반복해서 나타나면, 그 문자를 먼저 고정해 보는 것이 좋은 출발점이다.