개발자 톡
회의실 예약 반례 찾아주시면 감사드리겠습니다
- 등록일
- 2024-02-19 18:14:52
- 조회수
- 253
- 작성자
- yimjaeyun
#include <stdio.h>
#include <string.h>
#define maxtime 100
typedef struct{
char name[10];
}room_name;
typedef struct{
char name[10];
int start_time;
int end_time;
}room_reserve;
int compare_checktime(const void* a, const void* b)
{
int arg1 = *(const int*)a;
int arg2 = *(const int*)b;
if (arg1 < arg2) return -1;
if (arg1 > arg2) return 1;
return 0;
}
int main(void)
{
int N,M;
int temp;
scanf("%d %d", &N,&M);
int check_time[N][maxtime];
int avail;
int str_num;
char *str_temp;
room_name x[N];
room_reserve y[M];
char *str_list[N];
int test;
for (int i=0;i<N;i++){
scanf("%s",x[i].name);
str_list[i]=x[i].name;
}
for (int i=0;i<N-1;i++){
for (int j=0;j<N-1;j++){
str_num=strcmp(str_list[j],str_list[j+1]);
if (str_num>0){
str_temp=str_list[j];
str_list[j]=str_list[j+1];
str_list[j+1]=str_temp;
}
}
}
for (int i=0;i<M;i++){
scanf("%s %d %d",y[i].name,&y[i].start_time,&y[i].end_time);
}
test=strcmp(str_list[0],y[0].name);
for (int i=0;i<N;i++){
printf("Room %s:\n",str_list[i]);
check_time[i][0]=9;
check_time[i][1]=18;
temp=1;
avail=0;
for (int j=0;j<M;j++){
if (strcmp(str_list[i],y[j].name)==0){
temp+=1;
check_time[i][temp]=y[j].start_time;
temp+=1;
check_time[i][temp]=y[j].end_time;
}
for (int i1=temp-1;i1<temp+1;i1++){
for (int j2=0;j2<temp-1;j2++){
if (check_time[i][i1]==check_time[i][j2]){
check_time[i][i1]=1000;
check_time[i][j2]=1000;
}
}
}
qsort(check_time[i], temp+1, sizeof(int), compare_checktime);
}
for(int j3=temp+1;j3<maxtime;j3++){
check_time[i][j3]=1000;
}
for (int j4=0;j4<maxtime;j4++){
if (check_time[i][j4]>100){
avail=j4/2;
break;
}
}
if (avail==0){
printf("Not available\n");
}
else{
printf("%d available:\n",avail);
for (int j5=0;j5<maxtime;j5++){
if (check_time[i][j5*2]>100)
break;
if (check_time[i][j5*2]==9)
printf("0%d-%d\n",check_time[i][j5*2],check_time[i][(j5)*2+1]);
else
printf("%d-%d\n",check_time[i][j5*2],check_time[i][(j5)*2+1]);
}
}
if (i!=N-1)
printf("-----\n");
}
}
Subtask 2 부분에서 계속 오류가 발생하는데 원인을 모르겠네요 ㅠㅠ
해당 예시 반례 알려주시면 감사드리겠습니다.