XHAENEUNG 문제 질문입니다 ㅠㅠ mju6229 ㅠㅠ 그냥 노가다 방식으로 다 배열에다 저장해놓고 비교하는 방식으로 풀었습니다. 알파벳을 정렬해서 순서가 뒤바껴도 비교를 통해 정답을 가려 냈구요 합이 0과 10 사이의 숫자가 아닌 숫자면 모두 No로 나오게 했는데 어떤부분에서 오답이 뜨는지 너무나 궁금합니다 ㅠㅠ 생각해낼 수 있는 예제는 다 생각해서 집어넣어봤는데 혹시 다른 어떤 부분이 잘못되었는지 알 수 있을까요?? #define _CRT_SECURE_NO_WARNINGS # include <iostream> # include <cstring> int compare(const void *a,const void *b){ return (*(char*)b - *(char*)a); } char zero[11]={'z','e','r','o'}; char one[11]={'o','n','e'}; char two[11]={'t','w','o'}; char three[11]={'t','h','r','e','e'}; char four[11]={'f','o','u','r'}; char five[11]={'f','i','v','e'}; char six[11]={'s','i','x'}; char seven[11]={'s','e','v','e','n'}; char eight[11]={'e','i','g','h','t'}; char nine[11]={'n','i','n','e'}; char ten[11]={'t','e','n'}; char a[11]; int A; char b[11]; int B; char operation[11]; char u[11]; char res[11]; int main(){ qsort(zero,11,sizeof(char),compare); qsort(one,11,sizeof(char),compare); qsort(two,11,sizeof(char),compare); qsort(three,11,sizeof(char),compare); qsort(four,11,sizeof(char),compare); qsort(five,11,sizeof(char),compare); qsort(six,11,sizeof(char),compare); qsort(seven,11,sizeof(char),compare); qsort(eight,11,sizeof(char),compare); qsort(nine,11,sizeof(char),compare); qsort(ten,11,sizeof(char),compare); int t,s,i; scanf("%d",&t); while(t--){ s=0; scanf("%s",a); scanf("%s",operation); scanf("%s",b); scanf("%s",u); scanf("%s",res); qsort(res,11,sizeof(char),compare); A=100; B=100; s=100; if(a[0]=='z' && a[1]=='e' && a[2]=='r' &&a[3]=='0' && a[4] == 0 && a[5] == 0 && a[6] == 0 && a[7] == 0 && a[8] == 0 && a[9] == 0) A = 0; if(b[0]=='z' && b[1]=='e' && b[2]=='r' && b[3]=='o' && b[4] == 0 && b[5] == 0 && b[6] == 0 && b[7] == 0 && b[8] == 0 && b[9] == 0) B = 0; if(a[0]=='o' && a[1]=='n' && a[2]=='e' && a[3]==0 && a[4] == 0 && a[5] == 0 && a[6] == 0 && a[7] == 0 && a[8] == 0 && a[9] == 0) A=1; if(b[0]=='o' && b[1]=='n' && b[2]=='e' && b[3]==0 && b[4] == 0 && b[5] == 0 && b[6] == 0 && b[7] == 0 && b[8] == 0 && b[9] == 0) B=1; if(a[0]=='t' && a[1]=='w' && a[2]=='o' && a[3]==0 && a[4]==0 && a[5] == 0 && a[6] == 0 && a[7] == 0 && a[8] == 0 && a[9] == 0) A=2; if(b[0]=='t' && b[1]=='w' && b[2]=='o' && b[3]==0 && b[4] == 0 && b[5] == 0 && b[6] == 0 && b[7] == 0 && b[8] == 0 && b[9] == 0) B=2; if(a[0]=='t' && a[1]=='h' && a[2]=='r' &&a[3]=='e' && a[4]=='e' && a[5] == 0 && a[6] == 0 && a[7] == 0 && a[8] == 0 && a[9] == 0) A = 3; if(b[0]=='t' && b[1]=='h' && b[2]=='r' && b[3]=='e' && b[4]=='e' && b[5] == 0 && b[6] == 0 && b[7] == 0 && b[8] == 0 && b[9] == 0) B = 3; if(a[0]=='f' && a[1]=='o' && a[2]=='u' &&a[3]=='r' && a[4] == 0 && a[5] == 0 && a[6] == 0 && a[7] == 0 && a[8] == 0 && a[9] == 0) A = 4; if(b[0]=='f' && b[1]=='o' && b[2]=='u' && b[3]=='r' && b[4] == 0 && b[5] == 0 && b[6] == 0 && b[7] == 0 && b[8] == 0 && b[9] == 0) B = 4; if(a[0]=='f' && a[1]=='i' && a[2]=='v' &&a[3]=='e' && a[4] == 0 && a[5] == 0 && a[6] == 0 && a[7] == 0 && a[8] == 0 && a[9] == 0) A = 5; if(b[0]=='f' && b[1]=='i' && b[2]=='v' && b[3]=='e' && b[4] == 0 && b[5] == 0 && b[6] == 0 && b[7] == 0 && b[8] == 0 && b[9] == 0) B = 5; if(a[0]=='s' && a[1]=='i' && a[2]=='x' && a[3]==0 && a[4] == 0&& a[5] == 0 && a[6] == 0 && a[7] == 0 && a[8] == 0 && a[9] == 0) A=6; if(b[0]=='s' && b[1]=='i' && b[2]=='x' && b[3]==0 && b[4] == 0 && b[5] == 0 && b[6] == 0 && b[7] == 0 && b[8] == 0 && b[9] == 0) B=6; if(a[0]=='s' && a[1]=='e' && a[2]=='v' &&a[3]=='e' && a[4]=='n' && a[5] == 0 && a[6] == 0 && a[7] == 0 && a[8] == 0 && a[9] == 0) A = 7; if(b[0]=='s' && b[1]=='e' && b[2]=='v' && b[3]=='e' && b[4]=='n' && b[5] == 0 && b[6] == 0 && b[7] == 0 && b[8] == 0 && b[9] == 0) B = 7; if(a[0]=='e' && a[1]=='i' && a[2]=='g' &&a[3]=='h' && a[4]=='t' && a[5] == 0 && a[6] == 0 && a[7] == 0 && a[8] == 0 && a[9] == 0) A = 8; if(b[0]=='e' && b[1]=='i' && b[2]=='g' && b[3]=='h' && b[4]=='t' && b[5] == 0 && b[6] == 0 && b[7] == 0 && b[8] == 0 && b[9] == 0) B = 8; if(a[0]=='n' && a[1]=='i' && a[2]=='n' &&a[3]=='e' && a[4] == 0 && a[5] == 0 && a[6] == 0 && a[7] == 0 && a[8] == 0 && a[9] == 0) A = 9; if(b[0]=='n' && b[1]=='i' && b[2]=='n' && b[3]=='e' && b[4] == 0 && b[5] == 0 && b[6] == 0 && b[7] == 0 && b[8] == 0 && b[9] == 0) B = 9; if(a[0]=='t' && a[1]=='e' && a[2]=='n' && a[3]==0 && a[4]==0 && a[5] == 0 && a[6] == 0 && a[7] == 0 && a[8] == 0 && a[9] == 0) A=10; if(b[0]=='t' && b[1]=='e' && b[2]=='n' && b[3]==0 && b[4]==0 && b[5] == 0 && b[6] == 0 && b[7] == 0 && b[8] == 0 && b[9] == 0) B=10; if(operation[0]=='+' && operation[1]==0) s = A+B; else if(operation[0]=='*' && operation[1]==0) s = A*B; else if(operation[0]=='-' && operation[1]==0) s = A-B; else{ printf("No\n"); } if(s>10 || s<0) printf("No\n"); else if(s==0){ for(i=0;i<10;i++){ if(zero[i] != res[i]){ printf("No\n"); break; } } if(i == 10) printf("Yes\n"); } else if(s==1){ for(i=0;i<10;i++){ if(one[i] != res[i]){ printf("No\n"); break; } } if(i == 10) printf("Yes\n"); } else if(s==2){ for(i=0;i<10;i++){ if(two[i] != res[i]){ printf("No\n"); break; } } if(i == 10) printf("Yes\n"); } else if(s==3){ for(i=0;i<10;i++){ if(three[i] != res[i]){ printf("No\n"); break; } } if(i == 10) printf("Yes\n"); } else if(s==4){ for(i=0;i<10;i++){ if(four[i] != res[i]){ printf("No\n"); break; } } if(i == 10) printf("Yes\n"); } else if(s==5){ for(i=0;i<10;i++){ if(five[i] != res[i]){ printf("No\n"); break; } } if(i == 10) printf("Yes\n"); } else if(s==6){ for(i=0;i<10;i++){ if(six[i] != res[i]){ printf("No\n"); break; } } if(i == 10) printf("Yes\n"); } else if(s==7){ for(i=0;i<10;i++){ if(seven[i] != res[i]){ printf("No\n"); break; } } if(i == 10) printf("Yes\n"); } else if(s==8){ for(i=0;i<10;i++){ if(eight[i] != res[i]){ printf("No\n"); break; } } if(i == 10) printf("Yes\n"); } else if(s==9){ for(i=0;i<10;i++){ if(nine[i] != res[i]){ printf("No\n"); break; } } if(i == 10) printf("Yes\n"); } else if(s==10){ for(i=0;i<10;i++){ if(ten[i] != res[i]){ printf("No\n"); break; } } if(i == 10) printf("Yes\n"); } memset(a,0,sizeof(a)); memset(b,0,sizeof(b)); memset(u,0,sizeof(u)); memset(res,0,sizeof(res)); memset(operation,0,sizeof(operation)); } return 0; } 10년 전
2개의 댓글이 있습니다. astein 이 라인이 잘못되어 있습니다. 코드가 너무 길어서 읽기 힘들었습니다... ㅠ if(a[0]=='z' && a[1]=='e' && a[2]=='r' &&a[3]=='0' && a[4] == 0 && a[5] == 0 && a[6] == 0 && a[7] == 0 && a[8] == 0 && a[9] == 0) 10년 전 link mju6229 하 .. 너무나 감사합니다 ㅋㅋㅋ 드디어 정답이 .. 코드좀 효율적이게 짜도록 할게요.. 읽느라 수고하셨습니다! 10년 전 link 정회원 권한이 있어야 커멘트를 다실 수 있습니다. 정회원이 되시려면 온라인 저지에서 5문제 이상을 푸시고, 가입 후 7일 이상이 지나셔야 합니다. 현재 문제를 푸셨습니다.
mju6229
ㅠㅠ 그냥 노가다 방식으로 다 배열에다 저장해놓고 비교하는 방식으로 풀었습니다. 알파벳을 정렬해서 순서가 뒤바껴도 비교를 통해 정답을 가려 냈구요 합이 0과 10 사이의 숫자가 아닌 숫자면 모두 No로 나오게 했는데 어떤부분에서 오답이 뜨는지 너무나 궁금합니다 ㅠㅠ 생각해낼 수 있는 예제는 다 생각해서 집어넣어봤는데 혹시 다른 어떤 부분이 잘못되었는지 알 수 있을까요??
10년 전