https://codeup.kr/problem.php?id=1099&rid=0
계속 표현 에러가 뜬다;;
#include <iostream>
using namespace std;
int main()
{
// 2차원 배열 a 선언
int a[10][10] = {0, };
// 상자의 구조를 입력 받는다.
for (int i = 0; i < 10; i++)
{
for (int j = 0; j < 10; j++)
{
int t = 0;
cin >> t;
a[i][j] = t;
}
cout << endl;
}
// 개미를 이동 시킨다.
int x = 1;
int y = 1;
a[x][y] = 9;
while (1) {
// 오른쪽으로 갈 수 있다면 오른쪽으로 이동한다.
if (a[x][y + 1] == 0) {
a[x][y + 1] = 9;
y += 1;
}
// 오른쪽으로 갈 수 없다면 아래를 탐색해본다.
else if (a[x][y + 1] == 1) {
// 아래로 갈 수 있을 때
if (a[x + 1][y] == 0) {
a[x + 1][y] = 9;
x += 1;
}
// 아래에 길이 막혔을 때
else if (a[x + 1][y] == 1) {
break;
}
// 아래에 먹이가 있을 때
else if (a[x + 1][y] == 2) {
a[x + 1][y] = 9;
break;
}
else { break; }
}
else if (a[x][y + 1] == 2) {
a[x][y + 1] = 9;
break;
}
else { break; }
}
//cout << endl << endl;
// 출력한다.
for (int i = 0; i < 10; i++) {
for (int j = 0; j < 10; j++) {
cout << a[i][j];
cout << " ";
}
cout << endl;
//cout << endl;
}
return 0;
}
심지어 콘솔창에서도 똑같이 나온다.
뭐가 문제인 걸까..
엔터와 스페이스 밀당으로 무한의 늪으로...
도대체 어디서 삑 사리가 난 걸까..
도저히 몰라서 알고리즘 스터디 팀원에게 도움을 청했다.
박재범덕후님이 문제점 두 가지를 알려주셨다.
1. 입력할 때 cout << endl;을 제거해주기
2. 시작점에 먹이가 있는 경우를 위해
// 시작점이 2이면 끝낸다.
if (a[1][1] == 2) {
a[1][1] = 9;
break;
}
// 시작점이 2가 아니면 9로 바꾼다.
else { a[1][1] = 9; }
while문 시작 부분에 위 코드 추가해주기
정답 코드
#include <iostream>
using namespace std;
int main()
{
// 2차원 배열 a 선언
int a[10][10] = {0, };
// 상자의 구조를 입력 받는다.
for (int i = 0; i < 10; i++)
{
for (int j = 0; j < 10; j++)
{
int t = 0;
cin >> t;
a[i][j] = t;
}
//cout << endl;
}
// 개미를 이동 시킨다.
int x = 1;
int y = 1;
while (1) {
// 시작점이 2이면 끝낸다.
if (a[1][1] == 2) {
a[1][1] = 9;
break;
}
// 시작점이 2가 아니면 9로 바꾼다.
else { a[1][1] = 9; }
// 오른쪽으로 갈 수 있다면 오른쪽으로 이동한다.
if (a[x][y + 1] == 0) {
a[x][y + 1] = 9;
y += 1;
}
// 오른쪽으로 갈 수 없다면 아래를 탐색해본다.
else if (a[x][y + 1] == 1) {
// 아래로 갈 수 있을 때
if (a[x + 1][y] == 0) {
a[x + 1][y] = 9;
x += 1;
}
// 아래에 길이 막혔을 때
else if (a[x + 1][y] == 1) {
break;
}
// 아래에 먹이가 있을 때
else if (a[x + 1][y] == 2) {
a[x + 1][y] = 9;
break;
}
else { break; }
}
else if (a[x][y + 1] == 2) {
a[x][y + 1] = 9;
break;
}
else { break; }
}
//cout << endl << endl;
// 출력한다.
for (int i = 0; i < 10; i++) {
for (int j = 0; j < 10; j++) {
cout << a[i][j];
cout << " ";
}
//cout << endl;
cout << endl;
}
return 0;
}
오 끝났다
'Computer Science > Algorithm' 카테고리의 다른 글
[1단계] 백준 1152번 단어의 개수, python (0) | 2023.01.05 |
---|---|
[백준] 브론즈4에서 한 달 티어 목표 (0) | 2023.01.05 |
[백준] 선수과목 14567번 풀이 - 아직 못 품;; (0) | 2022.06.02 |
[백준] 홀짝 칵테일 21312번 풀이 (0) | 2022.06.02 |
[이코테] 15강. 최소 공통 조상 알고리즘 (0) | 2022.06.01 |