char grid[MAX_HEIGHT + 1][MAX_WIDTH + 1];
int H, W, score;
bool AI(int x, int y, int speed)
{
if (grid[x][y] == '#' || x >= H || y >= W)
{
score = max(score, y);
return false;
}
score = max(score, y);
int afterFlap = (x - FLAP<0) ? 0 : x - FLAP;
int afterStay = x + (++speed);
if (AI(afterFlap, y + 1, 0) || AI(afterStay, y + 1, speed))
{
return true;
}
return false;
}
int main() {
int C, start;
scanf("%d", &C);
while (C != 0)
{
--C;
scanf("%d%d", &H, &W);
for (int i = 0; i < H; ++i)
{
scanf("%s", grid[i]);
}
for (int i = 0; i < H; ++i)
{
if (grid[i][0] == '@') start = i;
}
AI(start, 0, 0);
printf("%d\n", score);
score = 0;
memset(grid, 0, sizeof(grid));
}
return 0;
}
~~~
flappy bird 문제 코딩해봤는데 런타임오류 뜨네요 ㅜㅜ
어떻게 하면 이 문제를 해결할 수 있을까요?
8년 전
0개의 댓글이 있습니다.
정회원 권한이 있어야 커멘트를 다실 수 있습니다. 정회원이 되시려면
온라인 저지에서 5문제 이상을 푸시고, 가입 후 7일 이상이 지나셔야
합니다. 현재 문제를 푸셨습니다.
universalee
~~~ c++
#include
#include
#include
using namespace std;
#define MAX_HEIGHT 20
#define MAX_WIDTH 1000
#define FLAP 4
char grid[MAX_HEIGHT + 1][MAX_WIDTH + 1];
int H, W, score;
bool AI(int x, int y, int speed)
{
if (grid[x][y] == '#' || x >= H || y >= W)
{
score = max(score, y);
return false;
}
score = max(score, y);
int afterFlap = (x - FLAP<0) ? 0 : x - FLAP;
int afterStay = x + (++speed);
if (AI(afterFlap, y + 1, 0) || AI(afterStay, y + 1, speed))
{
return true;
}
return false;
}
int main() {
int C, start;
scanf("%d", &C);
while (C != 0)
{
--C;
scanf("%d%d", &H, &W);
for (int i = 0; i < H; ++i)
{
scanf("%s", grid[i]);
}
for (int i = 0; i < H; ++i)
{
if (grid[i][0] == '@') start = i;
}
AI(start, 0, 0);
printf("%d\n", score);
score = 0;
memset(grid, 0, sizeof(grid));
}
return 0;
}
~~~
flappy bird 문제 코딩해봤는데 런타임오류 뜨네요 ㅜㅜ
어떻게 하면 이 문제를 해결할 수 있을까요?
8년 전