반응형
https://www.acmicpc.net/problem/7785
정렬과 적절한 자료구조를 이용하는 문제였습니다.
풀이방법
1. n만큼 이름, 상태를 입력받습니다.
2. 상태가 "leave"라면 map에 key가 name, value는 0으로 저장합니다. "enter"라면 map에 같은 key를 가지며 value는 1로 저장합니다.
3. vector에 map의 value가 1인 것들의 이름을 저장한뒤 역순으로 정렬합니다.
4. 정답을 출력합니다.
Code
#include <bits/stdc++.h>
using namespace std;
int n;
vector <string> s;
map <string,int> m;
int main(){
cin >> n;
while(n--){
string name, stat;
cin >> name >> stat;
if(stat == "leave") m[name] = 0;
else m[name] = 1;
}
for(auto el : m){
if(el.second) s.push_back(el.first);
}
sort(s.rbegin(),s.rend());
for(auto el : s) cout << el << '\n';
}
'Algorithm > 자료구조' 카테고리의 다른 글
(C++) - 프로그래머스(2021 카카오 채용연계형 인턴십) : 표 편집 (0) | 2021.07.16 |
---|---|
(C++) - 백준(BOJ) 4358번 : 생태학 (0) | 2021.07.07 |
(C++) - 백준(BOJ) 1655번 : 가운데를 말해요 (0) | 2021.05.17 |
(C++) - 백준(BOJ) 3273번 : 두 수의 합 답 (0) | 2021.05.01 |
(C++) - 백준(BOJ) 11652번 : 카드 답 (0) | 2021.05.01 |