본문 바로가기

Coding/백준

1748번 수 이어 쓰기 1

 브루트 포스 기본 문제.

 

 Ex) 1200

 1~9 -> 9*1

 10~99 -> 90*2

 100~999 -> 900*3

 ......

 ...

 ..

 1000~1200 -> (1200-1000+1)*4

 

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
31
32
33
34
35
36
37
#include <iostream>
 
using namespace std;
 
string N;
long answer;
 
int main(){
    cin >> N;
    
    long size = N.size()-1;
    long k=1;
    long num=stoi(N);
    
    for(int i=1;i<=size;i++){
        k*=10;
    }
    
    answer+=(num-k+1)*(size+1);
    
    while(size){
        int a=1;
        int b=1;
        
        for(int i=1;i<=size;i++){
            a*=10;
        }
        for(int i=1;i<=size-1;i++){
            b*=10;
        }
        
        answer+=(a-b)*size;
        size--;
    }
    
    cout << answer << endl;
}
cs

'Coding > 백준' 카테고리의 다른 글

2966번 찍기  (0) 2020.07.15
2858번 기숙사 바닥  (0) 2020.07.14
1120번 문자열  (0) 2020.06.15
2042번 구간 합 구하기  (0) 2020.06.09
1987번 알파벳  (0) 2020.05.21