아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

111 크로나

면접 대비

시간 제한1초메모리 제한1024 MB

요약
1, 11, 111, ... 처럼 모든 자릿수가 1인 지폐만 사용해 N 크로나를 정확히 지불할 때 필요한 지폐 수의 최솟값을 구한다.
난이도

보통10점 중 6점

유형
동적 계획법, 수학, 그리디, 정수론
정답자
아직 제출이 없습니다

문제

지폐를 생산하는 Tumba 제지 공장의 인쇄기가 고장 나서 이제 숫자 "1"만 인쇄할 수 있게 되었다. 새 인쇄기를 사려면 NN 크로나가 들지만, 공장에는 돈이 완전히 바닥난 상태다. 지폐를 찍는 곳이 공장 자신이니, 새 기계를 살 돈을 찍어 내면 되지 않겠는가?

고장 난 인쇄기는 숫자 "1"만 찍을 수 있으므로 1 크로나, 11 크로나, 111 크로나, 1111 크로나, ... 의 가치를 가진 지폐만 만들 수 있다.

공장은 새 인쇄기 값을 치르려면 지폐를 몇 장 찍어야 하는지 알고 싶어 한다. 잔돈 없이 정확히 NN 크로나를 지불해야 하며(필요한 것보다 많은 돈을 찍는 것은 부도덕하다), 지폐를 최대한 적게 찍으려 한다. 필요한 지폐 수를 계산하는 프로그램을 작성하시오.

입력

정수 NN (1≤N≤1 000 000 0001 \le N \le 1\,000\,000\,000) -- 새 인쇄기의 가격(크로나).

출력

찍어야 하는 지폐 수의 최솟값을 정수로 출력한다.

힌트

  • 첫 번째 예시에서는 1 크로나 지폐 1장과 11 크로나 지폐 2장을 쓸 수 있다.
  • 두 번째 예시에서는 1, 11, 111, 1111, 11111 크로나 지폐를 한 장씩 쓸 수 있다.

예제3

  1. 예제 1

    입력
    23
    
    예상 출력
    3
    
  2. 예제 2

    입력
    12345
    
    예상 출력
    5
    
  3. 예제 3

    입력
    282828
    
    예상 출력
    28