article thumbnail image
Published 2022. 9. 22. 13:13

문제: https://www.acmicpc.net/problem/2577

 

 

 

 

#include <iostream>
using namespace std;
int main()
{
  int check[10] = {
      0,
  };
  int a, b, c;
  int result;
  cin >> a >> b >> c;
  result = a * b * c;
  do
    check[result % 10]++;
  while (result /= 10);
  for (int i = 0; i < 10; i++)
    cout << check[i] << '\n';
}

digit의 개수를 카운트하기 위해 크기가 10인 check배열을 선언한다.

인덱스에 맞춰서 0~9까지 카운트할 생각이다.

제일 먼저 A, B, C를 입력받아 곱한 값을 result에 저장한다.

각 자리의 digit을 카운트하기 위해 10으로 나눈 나머지를 구하고, check배열의 인덱스로 사용해서 1을 증가시킨다.

check배열에 카운트했으면 마지막 자리는 버리기 위해 10으로 나눈 몫을 result에 다시 저장한다.

카운트를 완료했으면 check배열의 원소를 0부터 9까지 순서대로 출력한다.

 

 

 

 

 

 

'알고리즘' 카테고리의 다른 글

[BOJ] 3273: 두 수의 합  (0) 2022.09.22
[BOJ] 1475: 방 번호  (0) 2022.09.22
[BOJ] 2562: 최댓값  (1) 2022.09.21
[BOJ] 2309: 일곱 난쟁이  (1) 2022.09.21
[BOJ] 2490: 윷놀이  (1) 2022.09.21
복사했습니다!