문제 풀이 의도
1. 먼저 문자를 입력받아 각 문자마다 5자리 이진수로 바꿉니다.
(이렇게 전체 문자를 바이너리로 변환한 배열로 바꾸었습니다.)
2. 전체 바이너리 1차원 배열을 주어진 행과 열의 수에 맞춰
시계 방향으로 돌아가면서 하나하나 넣어줍니다.
3. 다 만들어진 배열들을 행 기준으로 모두 출력합니다.
이 코드에서 뭔가 메모리 참조 오류가 난거 같은데 아무리 찾아봐도 보이지가 않습니다 ㅠㅠ
#include <stdio.h>#include <string.h>charstr[100];intarr[50][50];introw,col;voidprintArr(intitx)//시계방향 만들어진 행렬을 행 기준으로 //모두 출력{inti,j;printf("%d ",itx+1);for(i=0;i<row;i++){for(j=0;j<col;j++)printf("%d",arr[i][j]);}printf("\n");}voidinit(void)//배열 초기화{inti,j;for(i=0;i<50;i++){for(j=0;j<50;j++)arr[i][j]=0;}}voidencoding(void)//문자열을 바이너리로 바꿔 배열에 저장{intflag=0;inttemp[500];chartemp2[100];intcnt=0;intcnt2=0;intnum;intstrSize;inti,j;intdiff=1;intdiff2=1;strSize=strlen(str);for(i=0;i<strSize;i++){if(i==0)continue;if(str[i]=='\n'){continue;}temp2[cnt2++]=str[i];}temp2[cnt2]='\0';strSize=strlen(temp2);for(i=0;i<strSize;i++){if(temp2[i]==' ')num=0;elsenum=(int)temp2[i]-64;cnt=0;for(j=0;j<5;j++){temp[5*(i+1)-cnt-1]=num%2;cnt++;num/=2;}}cnt=0;for(i=0;i<col;i++){arr[0][i]=temp[cnt++];if(cnt==strSize*5){flag=1;break;}}while(1){if(flag==1)break;for(i=0;i<row-diff;i++){arr[i+diff2][col-diff2]=temp[cnt++];if(cnt==strSize*5){flag=1;break;}}if(flag==1)break;for(i=0;i<col-diff;i++){arr[row-diff2][col-i-1-diff2]=temp[cnt++];if(cnt==strSize*5){flag=1;break;}}if(flag==1)break;diff++;for(i=0;i<row-diff;i++){arr[row-i-1-diff2][diff2-1]=temp[cnt++];if(cnt==strSize*5){flag=1;break;}}if(flag==1)break;for(i=0;i<col-diff;i++){arr[diff2][diff2+i]=temp[cnt++];if(cnt==strSize*5){flag=1;break;}}if(flag==1)break;diff++;diff2++;}}intmain(void){inttestcase;intitx;inti;scanf("%d",&testcase);for(itx=0;itx<testcase;itx++){init();scanf("%d %d",&row,&col);gets(str);encoding();printArr(itx);}return0;}
어떤 부분이 문제인지 도와주시면 정말 감사하겠습니다 ㅠㅠ
9년 전
0개의 댓글이 있습니다.
정회원 권한이 있어야 커멘트를 다실 수 있습니다. 정회원이 되시려면
온라인 저지에서 5문제 이상을 푸시고, 가입 후 7일 이상이 지나셔야
합니다. 현재 문제를 푸셨습니다.
ntinamu
ENCODING
문제 풀이 의도
1. 먼저 문자를 입력받아 각 문자마다 5자리 이진수로 바꿉니다.
(이렇게 전체 문자를 바이너리로 변환한 배열로 바꾸었습니다.)
2. 전체 바이너리 1차원 배열을 주어진 행과 열의 수에 맞춰
시계 방향으로 돌아가면서 하나하나 넣어줍니다.
3. 다 만들어진 배열들을 행 기준으로 모두 출력합니다.
이 코드에서 뭔가 메모리 참조 오류가 난거 같은데 아무리 찾아봐도 보이지가 않습니다 ㅠㅠ
어떤 부분이 문제인지 도와주시면 정말 감사하겠습니다 ㅠㅠ
9년 전