https://codeup.kr/problem.php?id=1099
x, y 좌표를 움직여가며 푸는 문제인데 생각보다 신경써야 하는 조건이 많았음
#include <stdio.h>
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
int arr[10][10];
int x = 1;
int y = 1;
for (int i = 0; i < 10; i++) {
for (int j = 0; j < 10; j++) {
int n;
cin >> n;
arr[i][j] = n;
}
}
while (1) {
if (x == 8 && y == 8) {
arr[x][y] = 9;
break;
}
if (x > 9 || y > 9) {
break;
}
if (arr[x][y] == 2) {
arr[x][y] = 9;
break;
}
arr[x][y] = 9;
if (arr[x][y + 1] == 0 || arr[x][y + 1] == 2) { //오른쪽으로 이동
if (arr[x][y + 1] == 2) {
arr[x][++y] = 9;
break;
}
arr[x][++y] = 9;
}
else { //아래로 이동
if (arr[x+1][y] == 2) {
arr[++x][y] = 9;
break;
}
arr[++x][y] = 9;
}
}
for (int i = 0; i < 10; i++) {
for (int j = 0; j < 10; j++) {
cout << arr[i][j] << ' ';
}
cout << endl;
}
return 0;
}