ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • boj)1748 - 수 이어쓰기 1
    PS/boj 2020. 9. 22. 17:32
    import java.io.*;
    
    public class boj_1748 {
        static BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    
        public static void main(String[] args) throws IOException {
            String n = br.readLine();
            int N = Integer.parseInt(n);
    
            int ans = 0;
            for (int i = 1; i <= N; i++) {
                if (i < 10) {
                    ans++;
                }
                if (10 <= i && i < 100) {
                    ans += 2;
                }
                if (100 <= i && i < 1000) {
                    ans += 3;
                }
                if (1000 <= i && i < 10000) {
                    ans += 4;
                }
                if (10000 <= i && i < 100000) {
                    ans += 5;
                }
                if (100000 <= i && i < 1000000) {
                    ans += 6;
                }
                if (1000000 <= i && i < 10000000) {
                    ans += 7;
                }
                if (10000000 <= i && i < 100000000) {
                    ans += 8;
                }
                if (i == 100000000) ans += 9;
            }
            System.out.println(ans);
        }
    }
    

    (1)

     

    import java.io.*;
    
    public class boj_1748 {
        static BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    
        public static void main(String[] args) throws IOException {
            String n = br.readLine();
            int N = Integer.parseInt(n);
    
            int ans = 0;
            for (int start = 1, len = 1; start <= N; start*=10, len++) {
                int end = start * 10 - 1; // 그 자릿수의 마지막 수
                if (end > N) end = N;
                ans += (end-start+1) * len;
            }
            System.out.println(ans);
        }
    }
    

    (2)

     

     

    생각

    - 반복문 어떻게 해야할지 생각도 안나고 그냥 적어도 몇개 없어서 노가다로 품

    - 밑의 풀이처럼 깔끔하게 반복문으로 풀 수 있음

     

     

    풀이

    - 그 수의 자릿수에 따라 ans에 + 되는 수가 다르고 그걸 구분해서 반복문에서 + 해줌

     

    'PS > boj' 카테고리의 다른 글

    boj)2493 - 탑  (0) 2020.10.12
    boj)10773 - 제로  (0) 2020.10.12
    boj)6064 - 카잉 달력  (0) 2020.09.22
    boj)14500 - 테트로미노  (0) 2020.09.22
    boj)1107 - 리모컨  (0) 2020.09.22
킹수빈닷컴