9가 4개, 6이 3개, 나머지 숫자는 1개씩 있다면, 최소 4세트가 필요하다.
9가 2개, 6이 0개 나머지 숫자는 1개씩 있다면, 최소 1세트가 필요하다.
[결론]
9와 6을 합했을 때 짝수 개라면, 2로 나눈 숫자만큼의 세트가 필요하다.
9와 6을 합했을 때 홀수 개라면, +1 한 만큼에서 2로 나눈 숫자만큼의 세트가 필요하다.
cnt 에는 9와 6을 제외한 숫자의 개수 중에서, 최대 개수를 구한다.
temp_sum은 9와 6의 카드 개수를 전부 누적한다.
#include <bits/stdc++.h>
using namespace std;
int n, cnt;
int v[11];
int main(void) {
ios::sync_with_stdio(0);
cin.tie(0);
cin >> n;
string s = to_string(n);
for(auto num : s){
v[num - '0']++;
}
int temp_sum = 0, temp_cnt = 0; // 9와 6만 센다
for(int i = 0; i <= 9; i++){
if(i == 9 || i == 6) temp_sum += v[i];
else cnt = max(cnt , v[i]);
}
if( temp_sum % 2 == 0) temp_cnt = temp_sum / 2;
else temp_cnt = (temp_sum + 1) / 2;
cout << max(cnt, temp_cnt);
return 0;
}
728x90
'알고리즘 > 백준' 카테고리의 다른 글
수 정렬하기 2 백준 2751번 c++ (0) | 2022.02.16 |
---|---|
마인크래프트 백준 18111번 c++ (0) | 2022.02.14 |
영화감독 숌 백준 1436번 c++ (0) | 2022.02.14 |
랜선 자르기 백준 1652번 c++ (0) | 2022.02.14 |
카드 백준 11652번 c++ (0) | 2022.02.13 |