일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 우테코
- Paging
- 자바
- 백준
- 코드리뷰
- 트랜잭션
- Docker
- REDIS
- 스프링 부트
- 미션
- mock
- yml
- JPA
- AOP
- MSA
- 프리코스
- 스프링부트
- AWS
- 세션
- HTTP
- 우아한테크코스
- 레벨2
- Level2
- 서블릿
- Spring Batch
- CircuitBreaker
- 우아한세미나
- 의존성
- JUnit5
- 프로그래머스
Archives
- Today
- Total
늘
acmicpc_19583(싸이버개강총회) 본문
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