(백준 알고리즘 문제풀이) 7785번 회사에 있는 사람
by 줌코딩
문제
어떻게 접근할 것인가?
- set으로 문제를 접근해도 되고 hash를 활용해도 된다.
- c++의 입출력을 이용하는 것은 무조건 최소한으로 해야한다.(이것때문에 날린시간이 몇시간인지ㅠㅠ)
set 활용 코드
#include <cstdio>
#include <algorithm>
#include <map>
#include <iostream>
#include <set>
using namespace std;
int n;
string name, c;
set<string, greater<string> > s;
int main(){
cin >> n;
while(n--){
cin >> name >> c;
if(c[0] == 'e')s.insert(name);
else s.erase(name);
}
for(auto itr = s.begin(); itr != s.end(); ++itr) cout << *itr << '\n';
}
map 활용 코드
#include <cstdio>
#include <iostream>
#include <vector>
#include <string>
#include <algorithm>
#include <map>
using namespace std;
int main(){
int n;
vector<string> v, in;
map<string, int> m;
map<string, int>::iterator iter;
string name, c;
scanf("%d", &n);
while(n--){
cin >> name >> c;
if(c[0] == 'e') {
if(m.find(name)->second == m.end()->second) m.insert(make_pair(name, 1));
else m.find(name)->second = 1;
}
else m.find(name)->second = 0;
}
for (iter = m.begin(); iter != m.end(); ++iter){
if(iter->second == 1) in.push_back(iter->first);
}
sort(in.begin(), in.end(), greater<string>());
for(int i = 0; i < in.size(); i++) cout << in[i] << "\n";
}
이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.
Subscribe via RSS