๋ฌธ์
19583๋ฒ: ์ธ์ด๋ฒ๊ฐ๊ฐ์ดํ
์ฒซ๋ฒ์งธ ์ค์๋ ๊ฐ๊ฐ์ดํ๋ฅผ ์์ํ ์๊ฐ S, ๊ฐ๊ฐ์ดํ๋ฅผ ๋๋ธ ์๊ฐ E, ๊ฐ๊ฐ์ดํ ์คํธ๋ฆฌ๋ฐ์ ๋๋ธ ์๊ฐ Q๊ฐ ์ฃผ์ด์ง๋ค. (00:00 ≤ S < E < Q ≤ 23:59) ๊ฐ ์๊ฐ์ HH:MM์ ํ์์ผ๋ก ์ฃผ์ด์ง๋ค. ๋๋ฒ์งธ ์ค๋ถํฐ๋
www.acmicpc.net
์ฝ๋
#include <iostream>
#include <unordered_map>
#include <vector>
#include <sstream>
#include <cstring>
using namespace std;
vector<string> parsing_time(string s){
istringstream ss(s);
string stringbuffer;
vector<string> v;
while(getline(ss,stringbuffer, ':')){
v.push_back(stringbuffer);
}
return v;
}
vector<string> parsing_blank(string s){
istringstream ss(s);
string stringbuffer;
vector<string> v;
while(getline(ss,stringbuffer, ' ')){
v.push_back(stringbuffer);
}
return v;
}
int main(){
ios_base::sync_with_stdio(false);
cin.tie(0);
string start_time, end_time, streaming_time; cin>>start_time>>end_time>>streaming_time;
int start, end, stream, ans = 0;
vector<string> v = parsing_time(start_time);
start = stoi(v[0])*60 + stoi(v[1]);
v = parsing_time(end_time);
end = stoi(v[0])*60 + stoi(v[1]);
v = parsing_time(streaming_time);
stream = stoi(v[0])*60 + stoi(v[1]);
string s;
unordered_map<string, pair<bool,bool>> peo_check;
cin.ignore();
while(getline(cin, s)){
v = parsing_blank(s);
vector<string> time = parsing_time(v[0]);
int hour = stoi(time[0]) * 60;
int minute = stoi(time[1]);
if(start>=hour+minute) peo_check[v[1]].first=true;
else if(end<=hour+minute && stream>=hour+minute) peo_check[v[1]].second=true;
}
for(auto it = peo_check.begin(); it!=peo_check.end(); it++){
if(it->second.first && it->second.second) ans++;
}
cout<<ans;
}
ํ์ด
์๋ ์กฐ๊ฑด์ ์กฐ๊ฑด๋ฌธ์ผ๋ก ์ ์ ์ด์ฃผ๋ฉด ์์ฝ๊ฒ ํ๋ฆฌ๋ ๋ฌธ์ ์ ๋๋ค.
- ๊ฐ๊ฐ์ดํ๋ฅผ ์์ํ๊ธฐ ์ ์, ํํ์์ ์ ์ฅ ํ์ธ ์ฌ๋ถ๋ฅผ ํ์ธํ๋ค. ํํ์์ ์ ์ฅ ์ฌ๋ถ๋ ๊ฐ๊ฐ์ดํ๊ฐ ์์ํ ์๊ฐ ์ด์ ์ ๋ํ๋ฅผ ํ ์ ์ด ์๋ ํํ์์ ๋๋ค์์ ๋ณด๊ณ ์ฒดํฌํ๋ค. ๊ฐ๊ฐ์ดํ๋ฅผ ์์ํ์๋ง์ ์ฑํ ๊ธฐ๋ก์ ๋จ๊ธด ํํ์๋ ์ ์๊ฐ์ ์ ์ฅ์ด ํ์ธ๋ ๊ฒ์ผ๋ก ๊ฐ์ฃผํ๋ค.
- ๊ฐ๊ฐ์ดํ๋ฅผ ๋๋ด๊ณ ๋์, ์คํธ๋ฆฌ๋ฐ์ ๋๋ผ ๋๊น์ง ํํ์์ ํด์ฅ ํ์ธ ์ฌ๋ถ๋ฅผ ํ์ธํ๋ค. ํํ์์ ํด์ฅ ์ฌ๋ถ๋ ๊ฐ๊ฐ์ดํ๊ฐ ๋๋๊ณ ์คํธ๋ฆฌ๋ฐ์ด ๋๋ ๋๊น์ง ๋ํ๋ฅผ ํ ์ ์ด ์๋ ํํ์์ ๋๋ค์์ ๋ณด๊ณ ์ฒดํฌํ๋ค. ๊ฐ๊ฐ์ดํ๊ฐ ๋๋์๋ง์ ์ฑํ ๊ธฐ๋ก์ ๋จ๊ฒผ๊ฑฐ๋, ๊ฐ๊ฐ์ดํ ์คํธ๋ฆฌ๋ฐ์ด ๋๋์๋ง์ ์ฑํ ๊ธฐ๋ก์ ๋จ๊ธด ํํ์๋ ์ ์๊ฐ์ ํด์ฅ์ด ํ์ธ๋ ๊ฒ์ผ๋ก ๊ฐ์ฃผํ๋ค.
map์ key๊ฐ์ ์ด๋ฆ, value ๊ฐ์ pair<bool, bool>๋ก ์ฃผ๊ณ , ์ฒซ ๋ฒ์งธ ์กฐ๊ฑด๊ณผ ๋ ๋ฒ์งธ ์กฐ๊ฑด์ ๋ง์กฑํ ๋ true๋ก ๋ฐ๊ฟ๋๋ค. ์ต์ข ์ ์ผ๋ก value์ pair ๊ฐ์ด ์ ๋ถ true์ธ ๊ฐ์ด ์ถ์์ด ํ์ธ๋ ์ธ์์ด ๋ฉ๋๋ค.
๋ฌธ์ parsing์ stringbufferํ์์ผ๋ก ๊ตฌํํ๋๋ฐ, ์๊ฐํด๋ณด๋ ๋์์ฐ๊ธฐ์ ์์น์ ์๊ฐ์ ์๋ฆฟ์๊ฐ ๊ณ ์ ๋์ด ์์ผ๋ substr์ ์ฌ์ฉํ๋ ๊ฒ ๋ ์ฝ๊ณ ๋น ๋ฅด๊ฒ ํ ์ ์์ ๊ฒ ๊ฐ์ต๋๋ค.
'Algorithm ๐ง๐ปโ๐ป > ๋ฐฑ์ค(BOJ)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค,c++] 1655๋ฒ - ๊ฐ์ด๋ฐ๋ฅผ ๋งํด์ (0) | 2022.06.21 |
---|---|
[๋ฐฑ์ค,c++] 12764๋ฒ - ์ธ์ง๋ฐฉ์ ๊ฐ ์คํ (0) | 2022.06.20 |
[๋ฐฑ์ค,c++] 17255๋ฒ - N์ผ๋ก ๋ง๋ค๊ธฐ (0) | 2022.06.20 |
[๋ฐฑ์ค,c++] 10546๋ฒ - ๋ฐฐ๋ถ๋ฅธ ๋ง๋ผํ ๋ (0) | 2022.06.19 |
[๋ฐฑ์ค,c++] 5430๋ฒ - AC (0) | 2022.06.19 |
[๋ฐฑ์ค,c++] 18115๋ฒ - ์นด๋ ๋๊ธฐ (0) | 2022.06.19 |
๋๊ธ