본문 바로가기
PS 문제 풀이/Baekjoon

[BOJ] 백준 1748 수 이어 쓰기 1

by 까망 하르방 2021. 2. 26.
반응형

출처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

댓글