1748수이어쓰기

suhan cho·2022년 6월 23일
0

해결해야 할 문제

  1. 1부터 n까지 수를 이어쓰고 어떤 방법으로 자릿수를 얻을 것인지(시간제한)

해결방법

  1. (내 방법, 시간초과) 브루트포스 방법으로 수를 받고 각각의 수의 길이 만큼을 더해준다

처음코드 시간초과

import java.util.Scanner;

public class ContinueWrite1748 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int input = sc.nextInt();
        int count = 0;
        for(int i =1; i<=input; i++){
            String str = String.valueOf(i);
            count = str.length();
        } 

        System.out.println(count);
    }
}
import java.util.Scanner;

public class ContinueWrite1748 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int input = sc.nextInt();
        int count = 0;
        int plus = 1;
        int num = 10;


        for(int i =1; i<=input; i++){
            if(i%num==0){
                plus++;
                num*=10;
            }
            count+=plus;
        }

        System.out.println(count);
    }
}
profile
안녕하세요

0개의 댓글