지뢰를 찾고
1. N,M 행렬 값 주고
2. col, row 위치를 주고
해당 위치에 지뢰가 있으면 "game over"
없다면 상하좌우 대각선 위치 확인해서 총 지뢰개수 출력
입력
9 8
4 5
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 1 0 0 0 0
0 0 0 0 0 1 0 0
0 0 0 1 0 1 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
출력
4
#include <iostream>
#include <vector>
using namespace std;
int plane[100][100];
int dx[8] ={0,-1,-1,-1,0,1,1,1};
int dy[8] ={1,1,0,-1,-1,-1,0,1};
int main() {
int sum=0;
int planeCol,planeRow;
cin>>planeCol >>planeRow;
int col,row;
cin >>col >>row;
col--;
row--;
for(int i=0;i<planeCol;i++)
for(int j=0;j<planeRow;j++)
cin >> plane[i][j];
if(plane[col][row]==1)
{
cout<<"game over";
}else{
for(int i=0;i<8;i++)
{
sum += plane[col+dx[i]][row+dy[i]];
}
cout<<sum;
}
return 0;
}
상하 좌우를 확인할때 좋은 방법
상대 위치 배열을 사용해서 배열로 돌리는 방법이 있다. !!!
int dx[8] ={0,-1,-1,-1,0,1,1,1};
int dy[8] ={1,1,0,-1,-1,-1,0,1};
for(int i=0;i<8;i++)
{
sum += plane[col+dx[i]][row+dy[i]];
}
'알고리즘' 카테고리의 다른 글
C++ 피라미드 (0) | 2019.01.07 |
---|---|
C++ 반장 선거 (0) | 2019.01.04 |
C++ 상자 색 (0) | 2018.12.28 |
C++ 삽입정렬, 선택정렬, 버블 정렬 (0) | 2018.12.27 |
C++ 유클리드 호제법 (0) | 2018.12.27 |
댓글