본문 바로가기
  • 개발 삽질 블로그
프로그래밍/백준 문제풀이

백준 1748: 수 이어 쓰기 1

by 갹둥 2022. 10. 3.

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

 

1748번: 수 이어 쓰기 1

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

www.acmicpc.net

이 문제는 노트에 좀 써보면 알고리즘을 찾기 쉬웠던 것 같다. N을 입력 받고 N의 자릿수를 구해준다. N의 자릿수를 l이라고 두고 풀었다. 

N까지

한 자리 수: 9개    //1~9

두 자리 수: 90개   //10~99

세 자리 수: 900개   //100~999

...

l-1자리 수 : 9*(10^(l-2))개   //100...0~999..9

그리고 l 자리수는 N-(10^(l-1))+1개 있다. 

import java.util.*;
public class Main {
	public static void main(String[] args){
		int N;
		Scanner sc = new Scanner(System.in);
		N=sc.nextInt();
		
		int i, k, l;
		int count=0;
	
		int tmp =  N;
		for(l=0; tmp>0; tmp/=10)
			l++;

		k=1;
		for(i=1; i<=l-1; i++) {
			count+=k*i*9;
			k*=10;
		}
		
		count+=i*(N-k+1);
		
		System.out.println(count);
	}
}