알고리즘/백준
공부 151일차: 백준 1748번 수 이어 쓰기 1 자바 java
김발자~
2022. 12. 28. 23:02
반응형
1748 수 이어 쓰기 1
https://www.acmicpc.net/problem/1748
1748번: 수 이어 쓰기 1
첫째 줄에 N(1 ≤ N ≤ 100,000,000)이 주어진다.
www.acmicpc.net
백준 1748번 문제 수 이어 쓰기 1
문제

과정 생각해보기
브루트포스 문제라서 그냥 무식하게 생각하기로 했다
1~9면 1을 더하고
10~99면 2를 더하고
...
100,000,000이면 9를 더하는 식이다
정답 인정 코드
1)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
import java.io.*;
public class Main {
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
int count = 0;
for(int i = 1; i <= n; i++) {
if(i < 10) {
count++;
}else if(i < 100) {
count += 2;
}else if(i < 1_000) {
count += 3;
}else if(i < 10_000) {
count += 4;
}else if(i < 100_000) {
count += 5;
}else if(i < 1_000_000) {
count += 6;
}else if(i < 10_000_000) {
count += 7;
}else if(i < 100_000_000) {
count += 8;
} else { //if(i == 100_000_000) {
count += 9;
}
}
System.out.println(count);
}
}
|
cs |
https://zzang9ha.tistory.com/154
이 블로그 참고
2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
import java.io.*;
public class Main {
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
int count = 0;
int cipher = 1; // 자릿수 ( 1~10: 1, 11~100: 2, ...
int standard = 10;
for(int i = 1; i <= n; i++) {
if(i % standard == 0) {
cipher++; // 기준으로 나누어 떨어진다 -> 자릿수가 바뀌었다 -> 자릿수 +1
standard *= 10; // 10, 100, 1000 ... 으로 기준을 늘린다(자릿수 바뀌는 수가 기준)
}
count += cipher;
}
System.out.println(count);
}
}
// 과정 https://gimbalja.tistory.com/289
|
cs |
깔끔한 코드...
정답률이 높은 만큼 쉬운 문제
반응형