브루트 포스 기본 문제.
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 |