곽로그
[백준 2577] 숫자의 개수 본문
반응형
2577번: 숫자의 개수
첫째 줄에 A, 둘째 줄에 B, 셋째 줄에 C가 주어진다. A, B, C는 모두 100보다 같거나 크고, 1,000보다 작은 자연수이다.
www.acmicpc.net
접근법
문제에서의 핵심은 "0부터 9까지 각각의 숫자가 몇 번씩 쓰였는지"이다. 여기서 0부터 9까지라고 해서 배열의 인덱스가 떠올랐다. number=A*B*C라고 하면 number를 10으로 나눈 나머지에 해당하는 인덱스의 값을 +1씩하면 되지 않을까 생각을 했다.
1) A,B,C를 입력받는다.
2) A,B,C를 곱한 수를 number에 대입한다.
3) 길이가 10인 (0부터 9까지)인 int배열을 선언한다.
4) while
4-1) number를 10으로 나눈 나머지에 해당하는 인덱스의 값을 1증가시킨가
4-2) number에 number를 10으로 나눈 몫을 대입한다
4-3) number가 0보다 클때까지 반복한다
5) 배열에 있는 수를 차례로 출력한다
위에 대응하는 코드는 아래와 같다.
public class Main {
public static void main(String[] args) {
Scanner in=new Scanner(System.in);
int A=in.nextInt();
int B=in.nextInt();
int C=in.nextInt();
int number=A*B*C;
int[] numCount=new int[10];
while(number>0) {
numCount[number%10]+=1;
number/=10;
}
for(int count:numCount) {
System.out.println(count);
}
}
}
반응형
'알고리즘 > 백준' 카테고리의 다른 글
| [백준 2448] 별찍기-11 (시간초과) (0) | 2019.04.24 |
|---|---|
| [백준 8958] OX퀴즈 (0) | 2019.04.24 |
| [백준 1065] 한수 (0) | 2019.04.19 |
| [백준 4673] 셀프 넘버 (0) | 2019.04.18 |
| [백준 1110] 더하기 사이클 (0) | 2019.04.18 |
Comments