관리 메뉴

개발자비행일지

c++ 지뢰찾기 본문

▶ 알고리즘

c++ 지뢰찾기

Cyber0946 2020. 4. 11. 21:58

#include  <algorithm>
#include  <vector>
#include  <string>
#include  <iostream>

using namespace std;

int main(){
int n, m;
int i, j, ii, jj;
int f(1);
// f=1;


while(cin >> n >> m){
//행렬의 크기를 받아 들인다. 
//n x m 행렬 
if (n==0) break;

if(f>1) cout << endl;


cout << "Field #" << f++ << ":" << endl;
//f를 사용해서 필드를 1 ,2 출력한다. 
 
vector mine(n);
//지뢰 
vector<vector> board;
//주변에 잇는 지뢰 
for (i =0; i<n; i++){
cin >> mine[i];
board.push_back(vector(m,0));
//n열의 m행의 값에 m,0으로 채워 준다. 
}
//자료형 준비 끝.
 
for (i =0; i<n; i++){
for (j =0; j<m; j++){
if(mine[i][j] != '*') continue;
for (ii = max(0, i-1); ii<=min(n-1, i+1); ii++){
for(jj = max(0, j-1); jj<=min(n-1, i+1); jj++){
//경계값을 벗어나지 않기 위한 것
board[ii][jj]++; 
}

}
}
}

for (i =0; i<n; i++){
for(j=0; j<m; j++){
if (mine[i][j] == '*') cout << "*";
else cout << board[i][j];
}
cout << endl;
}
return 0;
}



}

'▶ 알고리즘' 카테고리의 다른 글

배열 연습문제(경주게임 만들어보기)  (0) 2020.09.27
c++ 딕셔너리 만들기  (0) 2020.04.11
C++ 원소의 우선순위 결정하기  (0) 2020.04.11
C언어로 프로세스 스케줄러 만들기  (0) 2020.03.12
알고리즘  (0) 2018.12.10