[ 백준 2577번 ] 5단계 - 숫자의 개수
2021. 11. 10. 23:35ㆍ백준
백준 2577번 / 숫자의 개수
채점 결과는 다음과 같다
메모리 | 시간 | |
1번째 방법 | 1112 KB | 0 ms |
문제 풀이
0 ~ 9 숫자의 개수를 담을 number 배열 10개를 선언한다.
1. 먼저 A, B, C 값을 배열에 입력받고 합계 변수 sum에 입력받은 값을 곱해준다.
A: 150
B: 266
C: 427
sum = 150 x 266 x 427 = 17037300
2. sum이 한 자릿수가 될 때까지 돌려주면서 나머지를 연산자를 사용해 끝에서부터 하나씩 잘라서
Number 배열 sum % 10 인덱스에 1을 플러스해주고 sum을 10으로 나눠주면서 처리한 숫자는 제거해준다.
sum = 17037300 % 10 = 0
number [sum % 10] == number [0] 이므로 number 0번째 인덱스에 플러스 1
sum = sum / 10 = 1703730
이렇게 계속 반복해가면서 sum 이 한 자릿수가 될 때까지 반복하고 반복문을 탈출해준다.
3. 변수 i가 0부터 9까지 반복 구조를 실행시키면서 number 배열 i 번째 인덱스를 출력양식에 맞춰 출력해준다.
코드
#include <stdio.h>
#include <algorithm>
#include <math.h>
using namespace std;
int number[10];
int main() {
int i = 0;
int input[3] = {0, };
int sum = 0;
for ( i = 0; i < 3; i++ ) {
scanf("%d\n", &input[i]);
}
sum = input[0] * input[1] * input[2];
while (sum > 0) {
number[sum % 10]++;
sum /= 10;
}
for ( i = 0; i < 10; i++ ) {
printf("%d\n", number[i]);
}
}