⛔ 단순히 기록용 입니다... 어떻게 풀었는가 생각도 다시 해보고 그러니까 아마도 도움은 안되실 것 같습니다.
요즘들어 알고리즘 문제 풀기가 힘드네요. 그래도 꾸준히 하나씩은 쉬운거라도 풀어야 감각을 잃지 않을 것 같습니다. 그래서 실버3 문제 ㅋ 20분이내로 천천히 풀겠거니 하고 건드렸다가 대략 1시간 가까이를 뺏겼네요. 아오 시간은 분으로 바꿔서 구하는게 쉽다는걸 알면서도 매번 까먹습니다. 그리고 00분부터 59분까지가 60분인데 자꾸 그것도 바보처럼 풀었네요. 그래서 시간이 오래걸렸습니다. 항상 시간문제는 무조오오오오건 분으로 치환해서 또는 초로 치환해서 풀도록 생각해야겠습니다. 아래는 정답 코드입니다.
#include<iostream>
#include<cstring>
#define MAX 2201
using namespace std;
int n,timeTable[MAX];
void init(){
memset(timeTable, 0, sizeof(timeTable));
cin >> n;
}
void makeTable(int startTime, int endTime){
int startHour = startTime / 100;
startHour = startHour * 60;
int startMin = startTime % 100;
startMin -= 10;
startTime = startHour + startMin;
int endHour = endTime / 100;
endHour = endHour * 60;
int endMin = endTime % 100;
endMin += 10;
endTime = endHour + endMin;
for(int i = startTime; i < endTime; i++){
timeTable[i] = 1;
}
}
void solve() {
int startTime,endTime;
for(int i = 0; i < n; i++){
cin >> startTime >> endTime;
makeTable(startTime, endTime);
}
}
int answer(){
int cnt = 0;
int reservedTime = 0;
for(int i = 600; i < 1320; i++){
if(!timeTable[i]) {
cnt++;
} else{
reservedTime = max(reservedTime, cnt);
cnt = 0;
}
}
reservedTime = max(reservedTime, cnt);
return reservedTime;
}
int main(){
init();
solve();
cout << answer();
return 0;
}
'PS > BaekJoon' 카테고리의 다른 글
[C++/26042] 식당 입구 대기 줄 (0) | 2024.08.31 |
---|---|
[C++/8891] 점 숫자 (0) | 2024.08.28 |
[C++/16958] 텔레포트 (0) | 2024.08.14 |
[C++/27210] 신을 모시는 사당 (0) | 2024.08.09 |
[C++/3671] 산업 스파이의 편지 (0) | 2024.08.05 |