백준/백준 단계별 문제풀이

백준 2577번 (C++)

FDEE 2020. 8. 21. 15:39

www.acmicpc.net/problem/2577

 

2577번: 숫자의 개수

첫째 줄에 A, 둘째 줄에 B, 셋째 줄에 C가 주어진다. A, B, C는 모두 100보다 같거나 크고, 1,000보다 작은 자연수이다.

www.acmicpc.net

 

<답안>

#include <iostream>

using namespace std;

int main() {

    int a,b,c;

    int result = 0;

    int count[10] = {0};

    

    cin>>a>>b>>c;

    result = a*b*c;

    while(result != 0)

    {

        count[result%10]++;

        result /= 10;

    }

    

    for(int i=0; i<10; i++)

    {

        cout<<count[i]<<"\n";

    }

    

    return 0;

}

 

<설명>

세가지 숫자를 곱한 result를 만든다

0부터 9까지 개수를 세기위한 크기10의 배열 count[10]을 만든다

result%10을 통해 1의자리 숫자만 얻는다

얻은 숫자를 인덱스로삼아 count[]를 증가시킨다 (숫자가 1이면 array[1] 증가)

result/10을 통해 1의자리를 없앤다

result값이 0이 될때까지 반복한 뒤, count[0]부터 count[9]까지 출력한다

 

'백준 > 백준 단계별 문제풀이' 카테고리의 다른 글

백준 1546번 (C++)  (0) 2020.08.21
백준 3052번 (C++)  (0) 2020.08.21
백준 2562번 (C++)  (0) 2020.08.21
백준 10818번 (C++)  (0) 2020.08.21
백준 10996번 (C++)  (0) 2020.08.21