ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • #1019 책 페이지
    Code/BOJ 2019. 12. 31. 22:46
    728x90
    반응형

     

    n이 34라고 하자.

     

    그렇다면 10쪽부터 29쪽까지는

    10 11 12 13 14 15 16 17 18 19

    20 21 22 23 24 25 26 27 28 29

     

     

    1의 자리에서 0부터 9까지 2번 즉 29의 2와 10의 1을 빼준 2-1+1 개씩 나오게 된다.

    즉 1부터 9까지 각 숫자의 갯수의 합, 34,33,32,...,29까지 숫자의 갯수의 합을 구해주고 나머지는

    위의 방식대로 적용하면된다.

     

    자릿수를 높여서 생각해보자

    n=341이다.

    먼저 마찬가지로  1부터 9까지 각 숫자의 갯수의 합, 341,340까지는 cal함수를 통해 수동으로 계산을 한다.

     

    10쪽부터 339쪽까지는 조금 수의 모양을 바꿔 010쪽부터(맨 앞에 붙여준 0은 그냥 자릿수만 맞춰주는 0이며 아무 의미 없다.) 339쪽까지 1의자리에서 0~9까지 나오는 갯수는

    010 011 012 013 014 015 016 017 018 019

    020 021 022 023 024 025 026 027 028 029

    ...

    330 331 332 333 334 335 336 337 338 339

    339 의 33과 010 의 1을 빼준 33-1+1개씩 나오게 된다.

     

    이렇게 1의자리를 계속 해서 구해주고 해당 수를 10으로 나눠주어 이제는 10 / 10 =1, 339 / 10 즉 1부터 33까지 다시 위의 과정을 반복하는데 (1은 10으로 33은 29로 먼저 만든 후)여기서 중요한 점은 이제 이 숫자들은 본래 10이였고 330 즉 자릿수가 한 자리 줄어든 숫자들이므로 모든 숫자들이 10배 더 반복해서 나오게 된다. 이런점을 적용하여 연산이 한번 수행될때마다 alpha[10]배열에 넣어주는 값들을 더해서 넣어줄떄 *10을 계속해서 해서 넣어줘야 한다.

     

    소스코드는 다음과 같다.

     

     

    728x90
    반응형

    'Code > BOJ' 카테고리의 다른 글

    #2098 외판원 순회  (0) 2020.01.01
    #14267 내리 갈굼  (0) 2020.01.01
    #1713 후보 추천하기  (0) 2019.12.31
    #2933 미네랄  (0) 2019.12.31
    #2213 트리의 독립집합  (0) 2019.12.30

    댓글

Designed by Tistory.