728x90
0~9까지의 플라스틱 숫자 세트가 있습니다. 이를 이용해서 방 번호 N을 만들려고 합니다.
플라스틱 숫자 세트를 몇개 사용해서 방 번호를 만들 수 있는지 찾는 문제입니다.
6과 9는 뒤집어서 사용할 수 있습니다.
먼저 arr[]배열에 숫자가 사용 될때마다 추가를 해줍니다.
그리고 arr[9]는 arr[6]을 더해준 뒤 2로 나눕니다.
arr[0]~arr[9]에서 가장 높은 값이 나온 만큼 세트가 있다고 판단할 수 있습니다.
#include <iostream>
using namespace std;
int main(int argc, char * argv[])
{
int arr[10] = { 0,};
int num;
int index;
int max=0;
cin >> num;
do {
index = num % 10;
num /= 10;
arr[index]++;
} while (num != 0);
arr[6] += arr[9];
arr[6]++;
arr[6] /= 2;
arr[9] = 0;
for (int i = 0; i < 10; ++i) {
if (arr[i] > max) {
max = arr[i];
}
}
cout << max << endl;
return 0;
}
'알고리즘' 카테고리의 다른 글
[C++] 백준 1074번 Z (0) | 2019.03.06 |
---|---|
[C++] 백준 2163번 초콜릿 자르기 (0) | 2019.03.06 |
[C++] 백준 2775번 부녀회장이 될테야 (0) | 2019.03.05 |
[C++] 백준 2908번 상수 (0) | 2019.03.05 |
[C++] 백준 4673번 셀프 넘버 (0) | 2019.03.05 |