[PS 백준 - 1.2] 2577번: 숫자의 개수

PongkiJoa·2021년 6월 29일
0

PS Diary - 백준

목록 보기
3/54
post-thumbnail

문제 정보

백준 2577번 - 바로가기

  • 난이도: 브론즈 2
  • 알고리즘: 문자열

코멘트

엄청 간단한 문제지만, 그리고 숫자로만 풀어도 다 풀리지만 수업시간에 배웠던 것들을 사용해보고 싶어서 복잡하게 풀어 보았다.

  1. 곱한 숫자의 결과를 문자열로 변환해서 numstr에 저장하였다. 이때 to_string은 string 헤더파일 include해야 사용 가능한거 주의하자!
  2. 0으로 초기화된 10칸짜리 벡터를 만들고, 문자열의 숫자를 index로 접근하여 벡터 원소를 증가시켰다.
  3. 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; });
}
profile
컴공 20학번

0개의 댓글