처음 작성한 코드는 다음과 같다.
하지만 틀렸다는 결과가 떴다.
순서대로 쭉 이어져 있어야 붙어있는 거라고 생각해 그렇게 코드를 짠 거였지만,
생각해보니 행렬 순서대로 옆이 아니라도 위 아래로 붙어 있는 경우도 고려해주어야했다.
#include <iostream>
#include <cmath>
using namespace std;
int main(){
int n, m;
cin >> n >> m;
char arr[n][m];
for(int i=0; i<n; i++)
for(int j=0; j<m; j++)
cin >> arr[i][j];
int myteam = 0;
int otherteam = 0;
int count = 1;
for(int i=0; i<n; i++){
for(int j=0; j<m; j++){
if(i==0 && j==0)
continue;
if(arr[i][j] != arr[i][j-1]){
if(arr[i][j] == 'W'){
otherteam += (pow(count, 2));
count = 1;
}
else { //arr[i][j] == 'B'일 때
myteam += (pow(count, 2));
count = 1;
}
}
else {
count++;
}
}
}
cout << myteam << " " << otherteam;
return 0;
}
다시 작성한 코드는 다음과 같다.
이 문제를 해결하기 위해 탐색하는 코드를 사용해야 했다.
bfs 알고리즘으로 탐색하도록 구현했다.
'백준' 카테고리의 다른 글
백준 1495 기타리스트, c++ (0) | 2024.03.05 |
---|---|
백준 1743 음식물 피하기, c++ (0) | 2024.03.04 |
백준 2294 동전2, c++ (0) | 2024.03.02 |
백준 2293 동전 1, c++ (0) | 2024.03.01 |
백준 3085 사탕 게임, c++ (0) | 2024.02.29 |