티스토리 뷰

Algorithm

[백준 1748번] 자바/수 이어 쓰기 1

도도고영 2022. 9. 27. 00:44

문제

1부터 N까지의 수를 이어서 쓰면 다음과 같이 새로운 하나의 수를 얻을 수 있다.

1234567891011121314151617181920212223...

이렇게 만들어진 새로운 수는 몇 자리 수일까? 이 수의 자릿수를 구하는 프로그램을 작성하시오.

입력

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

출력

첫째 줄에 새로운 수의 자릿수를 출력한다.



import java.util.Scanner;

public class BJ1748 {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		
		int n = sc.nextInt();
		int result = 0;		// 자리수 누적
		int digit = 1;		// 현재 자리수
		int temp = 10;		// 비교기준으로 삼을 숫자 (1,10,100,1000,...)
		
		for (int i = 1; i <= n; i++) {
			// 예) n이 10이 되어 들어오면 digit이 1증가해서 2(두자리)가 됨
			if(i >= temp) {	
				temp *= 10;
				digit++;
			}
			
			// result 변수안에 들어온 n의 자리수 누적 
			result += digit;

			//System.out.printf("현재 자리수는 %d, temp값은 %d, result는 %d\n", digit, temp, result);
		}
		
		System.out.println(result);
	}
}
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함