알고리즘
백준 1748 수 이어 쓰기 1
킨글
2024. 9. 17. 14:58
설명
- plus 변수를 운영하면서 계속 몇자리를 더해줄지를 운영한다.
- if(i%digits ==0) 을 통해 10, 100, 1000일 때에 자리수인 plus 값을 더해준다.
코드
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
public class Main {
// 1748
public static void main(String[] args) throws IOException {
process();
}
// 1~9 : 1 * 1 * 9
// 10~99 : 2 * 10 * 9
// 100~999 : 3 * 100 * 9
private static void process() 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 plus = 1;
int digits = 10;
int cnt = 0;
for(int i = 1; i <= N; i++) {
if(i % digits == 0) {
plus += 1;
digits *= 10;
}
cnt += plus;
}
bw.write(cnt + "");
bw.flush();
bw.close();
br.close();
}
}