[BOJ] 1748 "수 이어쓰기" 문제 풀이 & 소스 코드 with C/C++

    반응형

    #INFO

    난이도 : SIVLER3

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

     

    1748번: 수 이어 쓰기 1

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

    www.acmicpc.net


    #SOLVE

    무작정 for문을 돌리면 시간제한이 0.15초 이기에 시간초과가 발생한다.

    그래서 자리수가 변경될 때 마다 자릿수를 늘리는 방식으로 풀이했다.

    #include <iostream>
    using namespace std;
    
    int main(){
    	int inputNum = 0;
    	int ans = 0;
    	cin >> inputNum;
    	int length = 1, boundary = 1;
    	
    	for (int i = 1 ; i <= inputNum ; i++) {
    		if (i == boundary * 10) {
    			boundary *= 10;
    			length++;
    		}
    		ans += length;
    	}
    	
    	cout << ans << endl;
    	return 0;
    }

    마지막 작성 : 2021-11-25

    반응형

    댓글

    Designed by JB FACTORY