영벨롭 개발 일지

[백준 BOJ][C++]1748번 수 이어 쓰기 1 풀이 본문

알고리즘 문제 풀이/BOJ

[백준 BOJ][C++]1748번 수 이어 쓰기 1 풀이

영벨롭 2022. 3. 24. 18:18

https://www.acmicpc.net/problem/1748

 

1748번: 수 이어 쓰기 1

첫째 줄에 N(1 ≤ N ≤ 100,000,000)이 주어진다.

www.acmicpc.net

 

N - 1 + 1 : 1부터 N까지의 수 중, 1의 자리 수를 갖고 있는 수의 개수

N - 10 + 1 : 1부터 N까지의 수 중, 10의 자리 수를 갖고 있는 수의 개수

N - 100 + 1 : 1부터 N까지의 수 중, 100의 자리 수를 갖고 있는 수의 개수

...

 

#include<iostream>

using namespace std;

int main(void) {

	int N;
	int cnt = 0;

	cin >> N;

	if (N < 10) {
		cout << N;
		return 0;
	}

	for (int i = 1; i <= N; i *= 10) {
		cnt += N - i + 1;
	}

	cout << cnt;

	return 0;
}
반응형