[백준] 13915 현수의 열기구 교실

November 02, 2021 ( last updated : November 02, 2021 )
비트마스킹 알고리즘

https://github.com/sneakstarberry/


Abstract

[백준] 13915번 현수의 열기구 교실

[백준] 13915번 현수의 열기구 교실

백준 13915번

알고리즘 유형

풀이방법

다른 종류의 열기구를 타야지만 숙련도가 다르게 측정이됩니다. 따라서 비트마스킹을 통해서 각 수강생의 숙련도를 저장하고 중복되지 않도록 배열에 넣었습니다. 지금 생각해보니 set을 썻어도 되었을 것 같습니다.

#include <iostream>
#include <vector>
#include <string>
#include <cstring>
using namespace std;
int arr[1001] = {0,};
int main()
{
  int n;
  while (cin >> n) {
    memset(arr, 0, sizeof(arr));
    for (int i=0; i<n; i++) {
      string tmp;
      cin >> tmp;
      for (int j=0; j<tmp.size(); j++) {
	      arr[i] |= 1 << (tmp[j] - '1');
      }
    }

    vector<int> exp;
    exp.push_back(arr[0]);
    for (int i=0; i<n; i++) {
      bool flag = true;
      for (int j=0; j<exp.size(); j++) {
        if(arr[i] == exp[j]) flag = false;
      }
      if (flag) {
	      exp.push_back(arr[i]);
      }
    }

    cout << exp.size() << '\n';
  }

  return 0;
}

Originally published November 02, 2021
Latest update November 02, 2021

Related posts :

{# #}