문제링크 : https://www.acmicpc.net/problem/19583
19583번: 싸이버개강총회
첫번째 줄에는 개강총회를 시작한 시간 S, 개강총회를 끝낸 시간 E, 개강총회 스트리밍을 끝낸 시간 Q가 주어진다. (00:00 ≤ S < E < Q ≤ 23:59) 각 시간은 HH:MM의 형식으로 주어진다. 두번째 줄부터는
www.acmicpc.net
#include <bits/stdc++.h>
using namespace std;
#define ll long long
int main(void) {
ios_base::sync_with_stdio(false);
cin.tie(0);
string S, E, Q;
cin >> S >> E >> Q;
set<string>start;
set<string>end;
while(1)
{
string time, name;
cin >> time >> name;
if(time=="" && name=="") break;
if(time<=S)
{
start.insert(name);
continue;
}
if(E<=time && time<=Q)
{
if(start.find(name) != start.end()) //해당 이름이 존재하면
{
end.insert(name);
}
}
}
cout << end.size() << "\n";
return 0;
}
각 조건에 맞을 때 name을 넣어주고, 이 name이 다음 조건에 부합하는지 검토하고 최종 end에 넣어준다.
end의 크기가 곧 명수이므로 크기를 출력해준다.
'백준 > 실버' 카테고리의 다른 글
[백준 5212번] 지구 온난화 (C++) (0) | 2023.03.05 |
---|---|
[백준 2670번] 연속부분 최대곱 (C++) (0) | 2023.03.04 |
[백준 1802번] 종이 접기 (C++) (0) | 2023.03.01 |
[백준 2548번] 대표 자연수 (C++) (0) | 2023.02.26 |
[백준 4307번] 개미 (C++) (0) | 2023.02.26 |