hwooo
LeetCode (C/C++, Java) 419. Battleships in a Board 본문
https://leetcode.com/problems/battleships-in-a-board/


풀이
공간복잡도가 O(1)이고 한 번만 순회하여 답을 구해야 했다.
주어진 battleship은 수직 혹은 수평으로만 주어지기에 위에서부터 순회하며 현재 셀에 battleship이 있고, 해당 셀의 위쪽 혹은 왼쪽이 X가 아니라면 즉, 이미 카운팅된 battleship이 아니라면 카운트 해 답을 구했다.
C/C++ 코드
class Solution {
public:
int countBattleships(vector<vector<char>>& board) {
int row = board.size();
int col = board[0].size();
int cnt = 0;
for (int i = 0; i < row; i++) {
for (int j = 0; j < col; j++) {
if (board[i][j] == '.') continue;`
if (i > 0 && board[i - 1][j] == 'X') continue;
if (j > 0 && board[i][j - 1] == 'X') continue;
cnt++;
}
}
return cnt;
}
};
Java 코드
class Solution {
public int countBattleships(char[][] board) {
int row = board.length;
int col = board[0].length;
int cnt = 0;
for (int i = 0; i < row; i++) {
for (int j = 0; j < col; j++) {
if (board[i][j] == '.') continue;`
if (i > 0 && board[i - 1][j] == 'X') continue;
if (j > 0 && board[i][j - 1] == 'X') continue;
cnt++;
}
}
return cnt;
}
}
'Study > Algorithm' 카테고리의 다른 글
LeetCode (C/C++, Java) 2364. Count Number of Bad Pairs (0) | 2025.02.13 |
---|---|
LeetCode (C/C++, Java) 91. Decode Ways (0) | 2025.02.13 |
프로그래머스 (C/C++, Java) 92344 : 파괴되지 않은 건물 (0) | 2025.02.13 |
BOJ (C/C++, Java) 14719번: 빗물 (0) | 2025.02.06 |
LeetCode (C/C++, Java) 841. Keys and Rooms (1) | 2025.02.04 |