티스토리 뷰


 이번 문제는 입력한 숫자 N까지 한수의 개수를 구해야 하는 문제이다. 이때 한수란 각 자릿수가 서로 동일한 차이를 가지고 있을 때를 의미하는데, 쉽게 말하자면 만약 int A에 3자리 숫자인 123이 들어오게 되면 백의 자리 숫자, 십의 자리 숫자, 일의 자리 숫자를 각각 int 형태로 빼내서 ( 백의 자리 숫자 - 십의 자리 숫자 ) = ( 십의 자리 숫자 - 일의 자리 숫자 )면 한수가 된다고 이해하면 편하다. 123의 경우 백의 자리 숫자가 1, 십의 자리 숫자가 2, 일의 자리 숫자가 3이기에 각 자리 숫자의 차이가 1씩 나기에 한수에 해당한다.

 

 이러한 개념을 바탕으로 생각하였을때 한자리 숫자나 두 자리 숫자의 경우, 차이를 구할 자리의 숫자가 없거나 2자리이기에 차이가 하나만이 생성되어 반드시 한수에 해당되기에 사실상 두 자리 숫자까지는 모두 한수로 카운팅하는 것이 좋다.

 


[ 풀이 ]

 

 먼저, 만약 숫자 N이 두자리 숫자이면 모두 한수이기에 N을 그대로 출력하게 if - else로 작성하였다. 그리고 만약 숫자 N이 3자리일 경우, 각각의 자리 수를 int a, int b, int c라는 변수를 지정하여 저장하게 하였으며 2자리 숫자를 모두 한수로 취급하였기에 반복문을 3 자리 숫자인 100부터 시작하게 하고, 한수의 개수를 카운팅하는 sum이라는 변수를 99부터 시작하게 작성하였다.

728x90
댓글
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
최근에 올라온 글
Total
Today
Yesterday
공지사항