Notice
Recent Posts
Recent Comments
Link
반응형
공부혜옹
백준 13915 현수의 열기구 교실 본문
쉬운 문제였는데 테스트케이스를 몇개 줄건지 말을 안해줘서 while(cin >> n) 부분을 빼먹었더니 틀렸던 문제다..화가 난다
풀이 방법은 각자의 숙련도가 들어올때마다 비트마스킹해서 그 값과 기존의 숙련도 비트 리스트와 비교해 리스트에 동일한 값이 있으면 넘어가고 없으면 리스트에 추가했다. 마지막으로 정답은 해당 리스트의 크기를 출력해주었다
푼사람이 없어서 적절한 풀이인지는 잘 모르겠지만 일단 정답처리는 되었다. 아마 비슷한 맥락내에서 더 효율적으로 구현하는 방법이 있을듯!
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
int n;
int main(void){
ios_base::sync_with_stdio(0);
cin.tie(0);
while(cin>>n){
vector<int> arr;
int cnt =0;
for(int i=0; i<n; i++){
int temp = 0;
string str;
cin >> str;
// 개인 숙련도 비트마스킹
for(int j=0; j<str.size(); j++){
temp |= (1 << (str[j]-'0'));
}
// 같은 숙련도 종류가 있는지 판별
bool isSame = false;
for(int k=0; k<arr.size();k++){
if(temp == arr[k]){
isSame = true;
}
}
if(!isSame){
arr.push_back(temp);
cnt++;
}
}
cout << arr.size() << endl;
}
return 0;
}
반응형
'공부합시다 > Algorithm' 카테고리의 다른 글
백준 15663 N과 M (9) (0) | 2021.11.16 |
---|---|
백준 15657 N과 M (8) (0) | 2021.11.16 |
백준 18119 단어암기 (0) | 2021.10.31 |
백준 9372 상근이의 여행 (0) | 2021.10.26 |
백준 3584 가장 가까운 공통 조상 (0) | 2021.10.26 |
Comments