https://www.acmicpc.net/problem/7785
7785번: 회사에 있는 사람
문제 상근이는 세계적인 소프트웨어 회사 기글에서 일한다. 이 회사의 가장 큰 특징은 자유로운 출퇴근 시간이다. 따라서, 직원들은 반드시 9시부터 6시까지 회사에 있지 않아도 된다. 각 직원은 자기가 원할 때 출근할 수 있고, 아무때나 퇴근할 수 있다. 상근이는 모든 사람의 출입카드 시스템의 로그를 가지고 있다. 이 로그는 어떤 사람이 회사에 들어왔는지, 나갔는지가 기록되어져 있다. 로그가 주어졌을 때, 현재 회사에 있는 모든 사람을 구하는 프로그램을 작성
www.acmicpc.net
이 문제 푸신 분 제발 이 블로그 보시면 저에게 해답을 주세요 ,,,
2019.09.20 - 풀었습니다. 아주 어이없게요..
출력할때 cout << endl 을 cout << "\n" 로 바꾸니까 성공했습니다...
#include <iostream>
#include <map>
#include <string>
using namespace std;
int main(){
ios::sync_with_stdio(false);
int n;
map<string, int, greater<string> > m;
cin >> n;
for(int i=0; i<n; i++){
string name, check;
cin >> name >> check;
if(check == "enter"){
m.insert(make_pair(name,1));
}
else{
if(m[name]== 1){
m[name] = 0;
}
else m.insert(make_pair(name,0));
}
}
map<string, int> ::iterator it;
for(it = m.begin(); it!=m.end(); it++){
if(it->second == 1) cout << it->first << endl;
}
return 0;
}
처음에 스택으로 풀고 시간초과 나고, set으로 풀고 시간초과.
이젠 map으로 풀어도 시간초과 나요 ...
제발 어떻게 풀어야 맞을까요?..
'DEV > PS' 카테고리의 다른 글
[14753] MultiMax, c++ (0) | 2019.09.20 |
---|---|
[1463] 1로 만들기, c++ (0) | 2019.09.17 |
[16466] 콘서트, c++ (0) | 2019.09.04 |
[1920] 수 찾기 (0) | 2019.08.25 |
[2389] 세상의 중심에서... (0) | 2019.08.25 |