[BaekJoon] 1748 수 이어 쓰기 1

6822 단어 baekjoonbaekjoon

1.  문제 링크

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

2.  문제

요약

  • 1부터 N까지의 수를 이어서 썼을 때 만들어지는 수의 자릿수를 구하는 문제입니다.
  • 입력: 첫 번째 줄에 N이 주어집니다/
  • 출력: 만들어지는 수의 자릿수를 출력합니다.

3.  소스코드

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;

public class Main {
    static int num;
	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
		num = Integer.parseInt(br.readLine());
		br.close();
		int result = 0;
		int cnt = 1;
		int length = 10;
		for(int i = 1; i <= num; i++) {
			if(i == length) {
				cnt++;
				length *= 10;
			}
			result += cnt;
		}
		bw.write(result + "\n");
		bw.flush();
		bw.close();
	}
}

4.  접근

  • 1부터 N까지의 숫자를 이어서 쓰는 것이므로 1부터 N까지 각 숫자의 자릿수를 다 더하면 되는 문제입니다.
  • 1부터 진행하여 자릿수가 변경될 때, 더하는 값을 1씩 증가시켜 N까지 더한다면 최종 자릿수를 구할 수 있습니다.

좋은 웹페이지 즐겨찾기