-
12. 숫자의 총 개수 (large : 제한시간 1초) [코드구현력 기르기]알고리즘 문제풀기/인프런 강의 정답 2022. 3. 18. 13:23
나의 정답1. 시간복잡도 O(n)
#define _CRT_SECURE_NO_WARNINGS #include <iostream> #include <string> using namespace std; int main(int argc, char** argv) { //freopen("input.txt", "rt", stdin); int i = 0; int n; int cnt = 0; int comp = 10; int increment_size = 1; scanf("%d", &n); for(i = 1 ; i <= n ; i++){ if(i % comp == 0) { comp *= 10; increment_size++; } cnt += increment_size; } printf("%d", cnt); } // A 65, Z 90 // a 97, z 122
나의 정답2. 시간복잡도(log n)
#define _CRT_SECURE_NO_WARNINGS #include <iostream> #include <string> using namespace std; int main(int argc, char** argv) { //freopen("input.txt", "rt", stdin); int i = 0; int n; int temp; int sum = 0; int digit_num = 0; int min_num = 1; scanf("%d", &n); temp = n; while(temp > 0 ){ temp /= 10; digit_num++; } for(i = 0 ; i < digit_num - 1 ; i++){ sum += 9 * min_num * (i + 1); min_num *= 10; } sum += (n - min_num + 1) * digit_num; printf("%d", sum); }
'알고리즘 문제풀기 > 인프런 강의 정답' 카테고리의 다른 글
14. 뒤집은 소수 [코드구현력 기르기] (0) 2022.03.20 13. 가장 많이 사용된 자릿수 [코드구현력 기르기] (0) 2022.03.19 11. 숫자의 총 개수 (small) [코드구현력 기르기] (0) 2022.03.17 10. 자릿수의 합 [코드구현력 기르기] (0) 2022.03.14 9. 모두의 약수(제한시간 1초)[코드구현력 기르기] (0) 2022.03.13