알고리즘/BOJ
[BOJ] 1748. 수 이어 쓰기 1
재담
2022. 3. 26. 23:30
문제 원본 : https://www.acmicpc.net/problem/1748
1748번: 수 이어 쓰기 1
첫째 줄에 N(1 ≤ N ≤ 100,000,000)이 주어진다.
www.acmicpc.net
import java.io.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int n = Integer.parseInt(br.readLine());
int tmp = n;
int ans = 0;
int a = 1, b = 9;
while (tmp >= 10) {
ans += (a++) * b;
b *= 10;
tmp /= 10;
}
ans += (n - b / 9 + 1) * a;
bw.write(String.valueOf(ans));
bw.close();
br.close();
}
}
- 단순 구현 문제
- 자릿수가 커질 때마다 a * (9 * 10^(a - 1)) 만큼 늘어난다.
- (n의 자릿수 - 1)만큼 반복하고, 남은 숫자를 계산해준다.
- 예를 들어 n이 120이라면 99까지 반복문을 통해 구하고, 100 ~ 120까지는 반복문이 끝나고 더해준다.