- 난이도: 브론즈 2
- 알고리즘: 문자열
엄청 간단한 문제지만, 그리고 숫자로만 풀어도 다 풀리지만 수업시간에 배웠던 것들을 사용해보고 싶어서 복잡하게 풀어 보았다.
- 곱한 숫자의 결과를 문자열로 변환해서 numstr에 저장하였다. 이때 to_string은 string 헤더파일 include해야 사용 가능한거 주의하자!
- 0으로 초기화된 10칸짜리 벡터를 만들고, 문자열의 숫자를 index로 접근하여 벡터 원소를 증가시켰다.
- for_each와 람다식을 이용하여 벡터를 출력하였다.
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
cin.tie(NULL);
cout.tie(NULL);
std::ios::sync_with_stdio(false);
int temp, num=1;
for (int i = 0; i < 3; i++) {
cin >> temp;
num *= temp;
}
string numstr = to_string(num);
std::vector<int> vec(10, 0);
for (int i = 0; i < numstr.length(); i++) {
vec[numstr[i]-'0']++;
}
for_each(vec.begin(), vec.end(), [](int i) {cout << i << endl; });
}