https://softeer.ai/practice/info.do?idx=1&eid=626
level 2 중 두번째로 정답률이 높은문제..!
근데 하다보니 정답률이 중요한게 아닌듯.. 애초에 제출수가 다른 문제에 비해 겁나 적다
다른 정답률 더 낮은문제가 훨~~씬 더 쉽고 단순..
움하핫
무튼 내코드.. 오늘도 엉망진창 ㅎ
저거 풀때 후다닥 약속 가야해서 진짜 주먹구구식으로 했다..
힝 ㅜ
솔직히 ~ .. 세배는 줄일수있을듯 ㅎ
아 cout 쓸때 포맷 맞춰서 출력하는거 이번에 첨알았다!!
cout.width(2); // 폭을 2로 지정
cout.fill('0'); // 채움 문자는 '0'
이거!
#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;
int N, M, from, to;
string name[51];
bool navailable[19];
vector<int> navailList[50];
vector<int> lefttime[18];
// 회의실 갯수, 예약된 회의 갯수
int main(int argc, char** argv)
{
cin >> N >> M;
for (int i = 0; i < N; i++) { // 회의실 이름 주어짐
cin >> name[i];
;
}
sort(name, name + N);
string thisname;
for (int i = 0; i < M; i++) { // 회의 배정된 회의실, 시작시각, 종료시각
cin >> thisname >> from >> to;
for (int j = 0; j < N; j++) {
if (thisname.compare(name[j]) == 0) {
for (int k = from; k < to; k++) {
navailList[j].push_back(k);
}
}
}
}
for (int i = 0; i < N; i++) {
sort(navailList[i].begin(), navailList[i].end());
}
for (int i = 0; i < N; i++) {
int tot = 0;
cout << "Room " << name[i] << ":" << endl;
for (int j = 9; j < 18; j++) {
navailable[j] = 0;
}
navailable[8] = true;
navailable[18] = true;
for (auto j = navailList[i].begin(); j != navailList[i].end(); j++) {
navailable[*j] = true;
}
for (int j = 9; j < 18; j++) {
if (!navailable[j]&& navailable[j] != navailable[j +1])
tot++;
}
if (tot > 0) {
cout << tot << " available:" << endl;
bool now = false;
for (int j = 9; j <= 18; j++) {
cout.width(2); // 폭을 2로 지정
cout.fill('0'); // 채움 문자는 '0'
if (!navailable[j]&& navailable[j]!=navailable[j-1]) {
cout << j << "-";
}
else if (navailable[j] && navailable[j-1]!=navailable[j]) {
cout << j<< endl;
}
}
}
else {
cout << "Not available" << endl;
}
if(i!=N-1)
cout << "-----" << endl;
}
return 0;
}