문제 설명
https://www.acmicpc.net/problem/1475
방 번호를 붙일 수 있는 0 ~ 9까지의 플라스틱 숫자가 한 세트가 있는데, 다솜이의 방 번호가 주어졌을 떄 필요한 세트의 개수의 최소값을 구하기
이때 9와 6은 바꿔서 사용가능
문제 풀이법
방 번호를 10으로 나누면서 각 번호가 총 몇 번 사용되었는지 숫자를 셈
- 만일 6이 3개, 9가 1개이면 총 2세트만으로도 가능
- 만일 6이 4개, 9가 1개이면 총 3세트만으로도 가능
즉, (6의 수 + 9의 수 + 1) / 2 하면 총 몇 세트가 필요한지 알 수 있음
arr[6] = (6의 수 + 9의 수 + 1 ) / 2
arr[9] = 0으로 설정
이후에 for문을 8까지 돌면서 가장 큰 수를 구함
소스 코드
#include <iostream>
using namespace std;
int main()
{
int n;
int arr[10] = { 0 };
cin >> n;
while (n > 10)
{
arr[n % 10]++;
n /= 10;
}
arr[n % 10]++;
int tmp = (arr[6] + arr[9] + 1) / 2;
arr[6] = tmp;
arr[9] = 0;
int max = -1;
for (int i = 0; i < 9; i++)
{
if (arr[i] > max)
max = arr[i];
}
printf("%d\n", max);
return 0;
}
'Algorithm Study' 카테고리의 다른 글
[백준] 3273 두 수의 합 (0) | 2023.01.06 |
---|---|
[백준] 2566 최댓값 (0) | 2023.01.06 |
[백준] 2577 숫자의 개수 (0) | 2023.01.06 |
[백준] 10808 알파벳 개수 (0) | 2023.01.06 |
[프로그래머스] 1단계 - 문자열 내 마음대로 정렬하기 (0) | 2023.01.05 |