728x90
반응형
https://school.programmers.co.kr/learn/courses/30/lessons/120866
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
2차원 배열에서 폭탄이 없는 안전지대만 count해 return 해주는 함수를 짜면 된다.
2차원 배열을 순회하여 폭탄이 있으면 그 주위값을 2로 만들고, 0인값을 카운팅 하는것으로 문제를 해결했다.
더 좋은 풀이 방법이 있을 것 같다.
추후에 더 좋은 방법이 생길 시 업데이트 해야겠다.
#include <string>
#include <vector>
using namespace std;
void SetBomb(vector<vector<int>>& board, int row, int col)
{
if (board.size() <= row || board.size() <= col || row<0 || col<0)
{
return;
}
if (board[row][col] ==1 || board[row][col] ==2)
{
return;
}
board[row][col] = 2;
}
int solution(vector<vector<int>> board) {
int answer = 0;
int size = board.size();
for (int i = 0; i < size; i++)
{
for (int j = 0; j < size; j++)
{
if (board[j][i] == 1)
{
SetBomb(board, j - 1, i - 1);
SetBomb(board, j, i - 1);
SetBomb(board, j + 1, i - 1);
SetBomb(board, j - 1, i);
SetBomb(board, j + 1, i);
SetBomb(board, j - 1, i + 1);
SetBomb(board, j , i + 1);
SetBomb(board, j + 1, i + 1);
}
}
}
for (int i = 0; i < size; i++)
{
for (int j = 0; j < size; j++)
{
if (board[j][i] == 0)
{
++answer;
}
}
}
return answer;
}
728x90
반응형
'개발일지 > 코딩테스트' 카테고리의 다른 글
[Programmers] 가장 큰 수(c++) (0) | 2025.03.31 |
---|---|
[Programmers] 약수의 합(c++) (0) | 2025.03.28 |
[Programmers] 최고의 집합 (c++) (0) | 2025.03.11 |
[Programmers] 하샤드 수(c++) (0) | 2025.03.06 |
[Programmers] 기지국 설치(c++) (0) | 2025.03.04 |