문제
https://www.acmicpc.net/problem/19583
걸린 시간
02 : 20 : 24
풀이
C++
#include <bits/stdc++.h>
#define INF 987654321
using namespace std;
int main(){
ios::sync_with_stdio(false);
cin.tie(NULL);
string s;
getline(cin, s);
int seq[3]; // 순서대로 s, e, q
int hh, mm;
char buf[20];
strcpy(buf, s.c_str());
char* p = strtok(buf, ":");
for(int i = 0; i < 3; i++){
hh = atoi(p);
p = strtok(NULL, " ");
mm = atoi(p);
p = strtok(NULL, ":");
seq[i] = hh*60+mm;
}
int ans = 0, time;
set<string> book; // 출석부
string t, n; // time, name
while(getline(cin, t, ' ') && getline(cin, n)){
strcpy(buf, t.c_str());
p = strtok(buf, ":");
hh = atoi(p);
p = strtok(NULL, " ");
mm = atoi(p);
time = hh*60+mm;
if(time <= seq[0])
book.insert(n);
else if(seq[1] <= time && time <= seq[2]){
if(book.find(n) != book.end()){
book.erase(n);
ans++;
}
}
}
cout << ans << "\n";
return 0;
}
입력받는 방법과 입력된 문자열을 처리하는 방법을 찾는 데 대부분의 시간이 쓰였고 나머지 시간 동안은 코딩에서 실수한 부분을 수정했다.
코딩 실수는 또 문제를 잘못 읽어서 생긴 문제였다. 핑계를 대자면 모니터 화면에 브라우저와 텍스트 에디터를 반반씩 분할해 두고 사용하는데 문제의 설명 중 "시작한 시간 이전에"라는 문장이 절묘하게 줄바꿈 되어 "시작(\n)한 시간 이전에"처럼 보였고 개강 총회가 시작되기 한 시간 전까지의 채팅 기록만을 입장으로 처리했던 것이었다...
'Baekjoon' 카테고리의 다른 글
Baekjoon 19637번 IF문 좀 대신 써줘 (0) | 2020.09.07 |
---|---|
Baekjoon 19582번 200년간 폐관수련했더니 PS 최강자가 된 건에 대하여 (0) | 2020.09.05 |
Baekjoon 11718번 그대로 출력하기 (0) | 2020.09.03 |
Baekjoon 19575번 Polynomial (0) | 2020.09.02 |
Baekjoon 12865번 평범한 배낭 (0) | 2020.09.02 |
댓글