[백준] Baekjoon Online Judge
문제
다솜이는 은진이의 옆집에 새로 이사왔다. 다솜이는 자기 방 번호를 예쁜 플라스틱 숫자로 문에 붙이려고 한다.
다솜이의 옆집에서는 플라스틱 숫자를 한 세트로 판다. 한 세트에는 0번부터 9번까지 숫자가 하나씩 들어있다. 다솜이의 방 번호가 주어졌을 때, 필요한 세트의 개수의 최솟값을 출력하시오. (6은 9를 뒤집어서 이용할 수 있고, 9는 6을 뒤집어서 이용할 수 있다.)
입력
첫째 줄에 다솜이의 방 번호 N이 주어진다. N은 1,000,000보다 작거나 같은 자연수이다.
출력
첫째 줄에 필요한 세트의 개수를 출력한다.
풀이
#include <iostream>
using namespace std;
int num[9];
int main() {
ios_base::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
string s;
cin >> s;
for (int i = 0; i < s.length(); i++) {
int idx = s[i] - '0';
if (idx == 9) num[6]++;
else num[idx]++;
}
num[6] = (num[6] % 2 == 1) ? (num[6] / 2 + 1) : (num[6] / 2);
int mx = 0;
for (int i = 0; i < 9; i++) mx = max(mx, num[i]);
cout << mx << '\n';
return 0;
}
필요한 플라스틱 숫자 세트는 가장 많이 나온 숫자의 횟수와 같다. 이때 6과 9는 뒤집어서 사용할 수 있으므로 두 숫자 개수의 합을 2로 나누고 소수점을 올림한 것이 필요한 세트의 개수이다.
'백준 > C++' 카테고리의 다른 글
[Baekjoon/C++] 2644번 - 촌수계산 (0) | 2024.10.07 |
---|---|
[Baekjoon/C++] 2167번 - 2차원 배열의 합 (0) | 2024.10.06 |
[Baekjoon/C++] 16234번 - 인구 이동 (2) | 2024.10.03 |
[Baekjoon/C++] 17298번 - 오큰수 (0) | 2024.09.30 |
[Baekjoon/C++] 2251번 - 물통 (0) | 2024.09.29 |