알고리즘/백준 BAEK JOON
2577.숫자의 개수
IMyoungho
2020. 4. 21. 22:55
이번에 풀어볼 문제는 난이도는 굉장히 쉽다면 쉽다. 구현의 분류에 있는 문제인데
어떻게하면 좀더 효율적으로 풀 수 있는지 고민해볼 수도 있고 여러사람의 코드를 보면서
생각해볼 수 있는 문제인 것 같다. 지금까지 풀었던 구현 문제들(블로그에 포스팅 안한 것도 있음)을 보면
대부분 난이도는 그렇게 어렵지 않지만 생각해보기 좋은 문제들이 나오는 것 같다.
2577번: 숫자의 개수
첫째 줄에 A, 둘째 줄에 B, 셋째 줄에 C가 주어진다. A, B, C는 모두 100보다 같거나 크고, 1,000보다 작은 자연수이다.
www.acmicpc.net
< Code 설명 >
#include <iostream>
#include <string.h>
#include <algorithm>
using namespace std;
int main()
{
int a, b, c;
cin >> a >> b >> c;
int sum = a*b*c; // 3개의 수를 곱한 값을 저장
string str = to_string(sum); // 문자열로 바꾼다.
sort(str.begin(),str.end()); // sort로 정렬해준다.
int answer[11]={0,}; // 정답이 저장될 배열 공간이며 숫자의 갯수를
// 카운트 할 것이기 때문에 0으로 초기화
while(!str.empty()){
answer[str.back()-'0']+=1; // 숫자인 문자와 같은 배열의 위치값을 올려준다.
// ex) '0'은 answer[0]의 값 ++
// '5'는 answer[5]의 값 ++
str.pop_back(); // 탐색이 끝난건 빼준다.
}
for(int i=0; i<10; i++){ // 정답 출력!
cout << answer[i] << "\n";
}
return 0;
}
반응형