BOGGLE 문제 시간초과가 왜 뜰까요? bum4985 #include<stdio.h> #include<string.h> char arr[7][7]; int valid[7][7]; int valid2[7][7]; char n[20]; int success; int main(void) { int count; scanf("%d",&count); while(count--) { getchar(); for(int i=1; i<6; i++) { for(int j=1; j<6;j++) { arr[i][j]=getchar(); } getchar(); } int count2; scanf("%d",&count2); while(count2--) { getchar(); gets(n); int length=strlen(n); for(int i=0;i<8;i++) for(int j=0;j<8;j++) valid[i][j]=1; for(int sun=0;sun<length;sun++) { success=0; if(sun%2==0){ for(int i=1; i<=5; i++) for(int j=1; j<=5; j++) valid2[i][j] = 0; for(int i=1;i<6;i++) { for(int j=1;j<6;j++) { if(valid[i][j]==1 && n[sun]==arr[i][j]) { int a=i; int b=j; valid2[a-1][b-1]=valid2[a-1][b]=valid2[a-1][b+1]= valid2[a][b-1]= valid2[a][b+1]= valid2[a+1][b-1]=valid2[a+1][b]=valid2[a+1][b+1]=1; success++; } } } } else{ for(int i=1; i<=5; i++) for(int j=1; j<=5; j++) valid[i][j] = 0; for(int i=1;i<6;i++) { for(int j=1;j<6;j++){ if(valid2[i][j]==1 && n[sun]==arr[i][j]) { int a=i; int b=j; valid[a-1][b-1]=valid[a-1][b]=valid[a-1][b+1]=valid[a][b-1]=valid[a][b+1]=valid[a+1][b-1]=valid[a+1][b]=valid[a+1][b+1]=1; success++; } } } } if(success==0)break; } if(success>0 ) printf("YES\n"); else printf("NO\n"); } } } 친구랑 소스가 아예 똑같은데 친구는 정답이고 저는 시간초과입니다. 왜그럴까요?? 10년 전
1개의 댓글이 있습니다. Being 어떻게 똑같은가요? 동일한 코드를 냈는데 결과가 다르게 나왔다는 말씀이신가요? 알려주시면 답변에 도움이 될 것 같습니다. 10년 전 link 정회원 권한이 있어야 커멘트를 다실 수 있습니다. 정회원이 되시려면 온라인 저지에서 5문제 이상을 푸시고, 가입 후 7일 이상이 지나셔야 합니다. 현재 문제를 푸셨습니다.
bum4985
친구랑 소스가 아예 똑같은데 친구는 정답이고 저는 시간초과입니다. 왜그럴까요??
10년 전