https://www.hackerrank.com/challenges/chessboard-game-again-1체스 게임 ...하지만 다른 한
나는 다음과 같은 방법으로 위의 질문을 시도했지만 답변은 잘못된 것으로 평가된다. (I 해결책을 요구하고 있지 않다,하지만 난을 요구하고있다 접근의 결함);
내 코드합니다 (C99의 오류를 무시하십시오)
#include <stdio.h>
#include <string.h>
#include <math.h>
#include <stdlib.h>
int numofmov = 0;
int issafe(int a,int b){
if(a>=0 && a<15 && b>=0 && b<15)
return 1;
return 0;
}
void move(int board[][15]){
for(int i=0;i<15;i++){
for(int j=0;j<15;j++){
if(board[i][j]>0){
board[i][j]--;
if(issafe(board,i-2,j+1)==1) {
numofmov++;
board[i-2][j+1]++;
}
if(issafe(board,i-2,j-1)==1) {
numofmov++;
board[i-2][j-1]++;
}
if(issafe(board,i+1,j-2)==1) {
numofmov++;
board[i+1][j-2]++;
}
if(issafe(board,i-1,j-2)==1) {
numofmov++;
board[i-1][j-2]++;
}
}
}
}
}
int main() {
/* Enter your code here. Read input from STDIN. Print output to STDOUT */
int t;
scanf("%d",&t);
while(t--){
int k;
scanf("%d",&k);
int board[15][15];
for(int j=0;j<15;j++){
for(int h=0;h<15;h++){
board[j][h]=0;
}
}
for(int i=0;i<k;i++){
int x,y;
scanf("%d %d",&x,&y);
board[x-1][y-1]++;
}
int bro=0,mov=numofmov;
while(bro==0){
move(board);
if(numofmov==mov){
bro++;
printf("Second\n");
break;
}
mov = numofmov;
move(board);
if(numofmov==mov){
bro++;
printf("First\n");
break;
}
mov = numofmov;
}
}
return 0;
}
내 접근 방식은 더 이동 할 수 없을 때 우리가 지점에 올 때까지 모든 동전을 위해 가능한 모든 움직임을 만들어 갈 것입니다. 그러나 이것은 일부 테스트 케이스에서 오답을주고있다.
귀하의 질문은 링크에 전적으로 의존하고있다. 링크는 시간이 지남에 따라 깨질 수 있으므로 관련 코드와 따옴표를 질문에 포함하는 것이 좋습니다. – SurvivalMachine
링크에 내 코드가 있습니다 ..... 작동하지 않습니까 ?? – yobro97
네, 죄송합니다. 마크를 조금 빨리 벗어났습니다. 질문에 코드를 추가했습니다. 나는 또한'C++'태그를 빼 버렸다. 마치'c'처럼 보인다. 문제를 설명하면 문제가 개선 될 것입니다. –