1일1알

백준 1475번 방 번호 C++ 본문

알고리즘

백준 1475번 방 번호 C++

영춘권의달인 2022. 3. 23. 11:21

출처 : https://www.acmicpc.net/problem/1475

 

숫자들이 얼마나 필요한지 map에 저장하고 6과 9는 같은 걸로 처리해서 문제를 해결하였다.

 

#include <iostream>
#include <string>
#include <vector>
#include <math.h>
#include <algorithm>
#include <utility>
#include <stack>
#include <queue>
#include <math.h>
#include <set>
#include <map>
#include <unordered_map>
#include <unordered_set>
#include <iomanip>

using namespace std;
using ll = long long;

int main() {
	ios_base::sync_with_stdio(false);
	cin.tie(NULL);
	cout.tie(NULL);

	map<int, int> mp;
	string str;
	cin >> str;
	int ans = 0;
	int sum = 0;
	for (int i = 0; i < str.length(); i++) {
		mp[str[i] - '0']++;
	}
	for (int i = 0; i <= 9; i++) {
		if (i == 6 || i == 9) {
			sum += mp[i];
			continue;
		}
		ans = max(ans, mp[i]);
	}
	if (sum % 2 == 0) {
		ans = max(ans, sum / 2);
	}
	else {
		ans = max(ans, (sum / 2) + 1);
	}
	cout << ans;
};