1525 크레이지 아케이드
http://codeup.kr/problem.php?id=1525
반복 사용되는 for문을 줄였다.
반복 사용되는 if문을 줄였다.
전역 변수로 분리하여 초기값 설정구문을 줄였다.
#define A a[x][y]
#define N a[i][j]
#define P for(i=1;i<=n;i++)
#define X(m) for(m=1;m<11;m++)
#define W if(t==
int n,i,j,f,k,a[11][11],U,R,c[9],l,x,y;int C(int t){W 1){U=0;R=-1;}W 2){U=0;R=1;}W 3){U=-1;R=0;}W 4){U=1;R=0;}}main(){X(i)X(j)scanf("%d",&N);X(i){X(j){if(N>0){for(k=1;k<5;k++){C(k);x=i;y=j;l=A;f=l;while(x&&y&&f!=-1&&x<11&&y<11&&l){x+=U;y+=R;f=A;if(!f)A=-2;l--;}}N=-2;}}}scanf("%d",&n);P{scanf("%d%d",&x,&y);if(!A){A=i;c[i]=i;}}X(i){X(j) printf("%d ",N);puts("");}puts("Character Information");P{printf("player %d ",i);if(c[i])puts("survive");else puts("dead");}}
//어찌저찌 2등했는데 1등 코드가 상상이 안간다.
//뭔가 내 방식과는 달리 최적화된 다른 알고리즘을 사용하는 것 같기도 하다.
'C, C++ > 숏코딩 일지' 카테고리의 다른 글
4577번 소코반 문제를 줄여보았다. (0) | 2019.04.27 |
---|