알고리즘
백준 1475번 방 번호 C++
영춘권의달인
2022. 3. 23. 11:21

숫자들이 얼마나 필요한지 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;
};