문제
https://www.acmicpc.net/problem/1019
지민이는 N쪽인 책이 한권 있다. 첫 페이지는 1쪽이고, 마지막 페이지는 N쪽이다. 각 숫자가 모두 몇 번이 나오는지 출력하는 프로그램을 작성하시오.
입력
첫째 줄에 N이 주어진다. N은 1,000,000,000보다 작거나 같은 자연수이다.
출력
첫째 줄에 0이 총 몇 번 나오는지, 1이 총 몇 번 나오는지, ..., 9가 총 몇 번 나오는지를 출력한다.
2. 나의 코드
- 걍 이거 보고 풀었다.
- 하도 개 쌩노가다하다 겨우 풀었다.
https://www.slideshare.net/Baekjoon/baekjoon-online-judge-1019
import java.util.*;
class Main{
static int [] arr = new int[10];
static int point = 1;
public static void main (String [] args){
Scanner sc = new Scanner(System.in);
int page = sc.nextInt();
int start = 1;
while(start <= page){
while(start%10!=0 && start<=page){
cal(start);
start++;
}
if(page < start){
break;
}
while(page%10!=9 && start<=page){
cal(page);
page--;
}
page/=10;
start/=10;
for(int i=0;i<10;i++){
arr[i]+=(page-start+1)*point;
}
point*=10;
}
StringBuilder builder = new StringBuilder();
for(int i=0;i<10;i++)
builder.append(arr[i] + " ");
System.out.println(builder.toString());
}
public static void cal(int num){
while(num>0){
arr[num%10]+=point;
num/=10;
}
}
}
'Computer Science > 알고리즘 문제풀이' 카테고리의 다른 글
Baek Joon _백준 1012> DFS/BFS > #51 유기농 배추 (0) | 2019.06.10 |
---|---|
Baek Joon _백준 1028> DP > #48 다이아몬드 광산 (0) | 2019.06.02 |
Baek Joon _백준 1065> brute force > #47 한수 (0) | 2019.06.02 |
Baek Joon _백준 1010> DP(조합) > #46 다리놓기 (0) | 2019.05.25 |
Programmers > 연습문제 > #45 정수 내림차순으로 배치하기 (0) | 2018.12.24 |