acmicpc_19583(싸이버개강총회) 본문

알고리즘_백준/문자열

acmicpc_19583(싸이버개강총회)

giron 2021. 2. 23. 22:05
728x90

이 문제는 대회 당시에 시간초과로 시간을 많이 잡아먹었는데 대회가 끝나고 자료구조를 set으로 바꿔서 해보니 한번에 통과되어서 상당히 현타가 왔던 문제였다....

#include <iostream>
#include <string>
#include <queue>
#include <set>
using namespace std;

string s, e, q;
set<string> st;

long long Change(string s) {
	string si = s.substr(0, 2);
	string boon = s.substr(3,2);

	return 60 * stol(si) + stol(boon);
	
}
int main() {

	ios_base::sync_with_stdio(0);
	cin.tie(0);

	cin >> s >> e >> q;
	string str, name;
	int cnt = 0;

	long long S = Change(s);
	long long E = Change(e);
	long long Q = Change(q);


	while (cin.eof() == false) {
		cin >> str;
		string si = str.substr(0, 2);
		string boon = str.substr(3, 2);
		cin >> name;

		if (stoi(si) > 23 || stoi(si)<0 || stoi(boon) < 0 || stoi(boon) > 59)break; //이 조건은 입력에서 예외를 줬기 때문에 괜찮을것 같다.

		long long time = Change(str);

		if (time <= S) {
			
			st.insert(name);
		}
		else if (E <= time && time <= Q) {
			if (st.find(name) != st.end()) {
				cnt++;
				auto it = st.find(name);
				st.erase(it);
			}
		}

	}
	cout << cnt;

}
728x90

'알고리즘_백준 > 문자열' 카테고리의 다른 글

[백준] C/C++ acmicpc_5430 AC  (0) 2021.08.30
c/c++ 백준_1342 행운의 문자열  (0) 2021.07.27
acmicpc_9935 (문자열 폭발)  (0) 2020.10.27
acmicpc_9251 (LCS)  (0) 2020.10.26
Comments