끄적끄적 코딩
article thumbnail
Published 2019. 3. 5. 22:08
[C++] 백준 1475번 방 번호 알고리즘
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

검색 태그