반응형
출처: https://www.acmicpc.net/problem/1748
Input
120
Output
252
숫자의 길이는 아래의 규칙을 지닌다.
1- 9 → 1
10 - 99 → 2
100 - 999 → 3
1000 - 9999 → 4
N이 크지 않은 숫자이므로, 어느 구간에 속하는지 확인하며 숫자의 길이를 더해갑니다.
#include <iostream>
using namespace std;
int main() {
ios_base::sync_with_stdio(false);
cin.tie(NULL); cout.tie(NULL);
int N; cin >> N;
long long answer = 0;
int start = 1, end = 10;
int len = 1;
while(1){
for(int i=start; i < end; ++i){
if(i > N){
cout << answer << '\n';
return 0;
}
// 숫자의 길이를 더해줍니다.
answer += len;
}
// (1, 10) > (10, 100) > (100, 1000) > ...
start *= 10; end *= 10;
len++;
}
}
반응형
'PS 문제 풀이 > Baekjoon' 카테고리의 다른 글
[BOJ] 백준 1927 최소 힙 (0) | 2021.02.26 |
---|---|
[BOJ] 백준 11279 최대 힙 (0) | 2021.02.26 |
[BOJ] 백준 6603 로또 (0) | 2021.02.26 |
[BOJ] 백준 1551 수열의 변화 (0) | 2021.02.26 |
[BOJ] 백준 10991 별 찍기 - 16 (0) | 2021.02.26 |
댓글