# 생각

문제의 조건을 잘 파악해야한다

 

1. 오른쪽이 벽으로 막히기 전까지는 무조건 오른쪽 검사 후 오른쪽으로 이동

2. 오른쪽이 벽으로 막히면 아래쪽 검사후 아래쪽으로 이동

3. 더 이상 움직이지 못하면 종료

4. 먹이를 만나면 이동하지 않고 9로 바꾸고 종료

 

 

# 전체 코드

#include <bits/stdc++.h>
using namespace std;

int main()
{
	ios::sync_with_stdio(false);
	cin.tie(nullptr);

	int board[12][12] = {};
	int xx, yy;
	for (int i = 1; i <= 10; i++)
	{
		for (int j = 1; j <= 10; j++)
		{
			cin >> board[i][j];
			if (board[i][j] == 2)	// 먹이 위치
			{
				xx = i;
				yy = j;
			}
		}
	}

	int x = 2, y = 2;				// 시작 위치
	while (true)
	{
		board[x][y] = 9;
		if (x == xx && y == yy)		// 먹이 먹으면 종료
		{
			break;
		}
		if (board[x][y + 1] != 1)	// 우측이 벽이 아닐 시
		{
			y++;
		}
		else if (board[x + 1][y] != 1)	// 우측이 벽이면서 아래가 벽이 아닐 시
		{
			x++;
		}
		else							// 나머지 조건은 종료
		{
			break;
		}
	}

	for (int i = 1; i <= 10; i++)
	{
		for (int j = 1; j <= 10; j++)
		{
			cout << board[i][j] << ' ';
		}
		cout << '\n';
	}
}

https://codeup.kr/problem.php?id=1099 

 

[기초-2차원배열] 성실한 개미

C언어기초100제v1.2 : @컴퓨터과학사랑, 전국 정보(컴퓨터)교사 커뮤니티/연구회 - 학교 정보(컴퓨터)선생님들과 함께 수업/방과후학습/동아리활동 등을 통해 재미있게 배워보세요.  - 모든 내용

codeup.kr

+ Recent posts