새소식

반응형
알고리즘

[C++] 소프티어 Softeer 21년 재직자 대회 예선 - 회의실 예약

  • -
반응형

https://softeer.ai/practice/info.do?idx=1&eid=626 

 

Softeer

연습문제를 담을 Set을 선택해주세요. 취소 확인

softeer.ai

 

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; }
반응형
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.