난이도: 실버 5
https://www.acmicpc.net/problem/1475
1475번: 방 번호
첫째 줄에 다솜이의 방 번호 N이 주어진다. N은 1,000,000보다 작거나 같은 자연수이다.
www.acmicpc.net
문제
다솜이는 은진이의 옆집에 새로 이사왔다. 다솜이는 자기 방 번호를 예쁜 플라스틱 숫자로 문에 붙이려고 한다.
다솜이의 옆집에서는 플라스틱 숫자를 한 세트로 판다. 한 세트에는 0번부터 9번까지 숫자가 하나씩 들어있다. 다솜이의 방 번호가 주어졌을 때, 필요한 세트의 개수의 최솟값을 출력하시오. (6은 9를 뒤집어서 이용할 수 있고, 9는 6을 뒤집어서 이용할 수 있다.)
입력
첫째 줄에 다솜이의 방 번호 N이 주어진다. N은 1,000,000보다 작거나 같은 자연수이다.
출력
첫째 줄에 필요한 세트의 개수를 출력한다.

풀이
#include <iostream>
#include <string>
using namespace std;
int cnt[10] = { 0, };
int main()
{
string s;
cin >> s;
for (int i = 0; i < s.length(); i++)
{
int n = s[i] - '0';
cnt[n]++;
}
int maxCnt = 0;
int sum = 0; // 6과 9는 합한 후 2로 나눠서 개수 카운트
for (int i = 0; i < 10; i++)
{
if (i == 6 || i == 9)
{
sum += cnt[i];
}
else if (cnt[i] > maxCnt)
maxCnt = cnt[i];
}
if (sum / 2 >= maxCnt)
{
if (sum % 2 == 1)
cout << sum / 2 + 1;
else
cout << sum / 2;
}
else
cout << maxCnt;
}
'Baekjoon > 구현' 카테고리의 다른 글
14891(톱니바퀴) (0) | 2023.06.20 |
---|---|
14499(주사위 굴리기) (0) | 2023.05.16 |
2563(색종이) (0) | 2023.05.15 |
14503(로봇 청소기) (0) | 2023.05.14 |
2108(통계학) (0) | 2023.05.09 |