Lined Notebook

[Silver 3] [Java] 수 이어 쓰기 1 (1748번)

by HeshAlgo

<수 이어 쓰기 1>

문제 설명

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

1234567891011121314151617181920212223...

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

 

제한 사항

입력

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

 

출력

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

내 생각

1~9 = 9개 
10 ~ 99 = 90개
100 ~ 999 = 900개
이 규칙을 짜기위한 구현 문제 입니다. 주어진 n 값까지 반복문을 돌립니다. n의 값이 10, 100, 1000... 올라갈때 마다 조건문을 타며 len의 값을 10씩 곱해주고 자릿수값(cnt)을 증가시킵니다. 

 

걸린 시간

12분 21초

 

작성 코드

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
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
 
public class Main {
 
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int n = Integer.parseInt(br.readLine());
        int answer = 0;
        int cnt = 1;
        int len = 10;
        
        for (int i = 1; i <= n; i++) {
            if (i == len) {
                len *= 10;
                cnt++;
            }
            answer += cnt;    
        }
        System.out.println(answer);
    }
 
}
 
 
 

 

실행 결과

블로그의 정보

꾸준히 공부하는 개발 노트

HeshAlgo

활동하기