1748 수 이어 쓰기 1

2019. 9. 2. 17:40알고리즘/백준

일의 자리수는 총 9개이면서 길이가 1로 9의 길이를 차지하고, 두 자릿수는 총 90개이면서 길이가 2로 180의 길이를 갖는다. 이러한 규칙으로 해당 자릿수에 대해서만 차이에 대한 연산을 하고 나머지 밑의 자릿수는 정해진 90, 180을 더해주면 된다

 

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

깃허브주소: https://github.com/surinoel/boj/blob/master/1748.cpp

 

#include <cmath>
#include <string>
#include <iostream>
using namespace std;
int main(void) {
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
int n;
cin >> n;
string s = to_string(n);
int len = s.size();
int ans = 0;
ans = len * (n - (int)pow(10, len - 1) + 1);
for (int i = len - 1; i >= 1; i--) {
ans += 9 * (int)pow(10, i - 1) * i;
}
cout << ans << '\n';
return 0;
}
view raw 1748.cpp hosted with ❤ by GitHub

 

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

2529 부등호  (0) 2019.09.03
16235 나무 재테크  (0) 2019.09.02
6064 카잉 달력  (0) 2019.09.02
16234 인구 이동  (0) 2019.09.02
16926 배열 돌리기  (0) 2019.09.01