안녕하십니까. Eun🦆입니다.
풀이법 입니다.
#include <string>
#include <vector>
#include <stack>
using namespace std;
int solution(int m, int n, vector<string> board) {
int answer = 0;
stack<int> st;
while(1)
{
for(int y=1;y<m;y++)
{
for(int x=1;x<n;x++)
{
if(board[y-1][x-1]==board[y-1][x] & board[y-1][x]==board[y][x-1] &
board[y][x-1]==board[y][x] & board[y][x] != '0')
{
st.push(y);
st.push(x);
printf("find! y=%d, x=%d\n",y,x);
}
}
}
if(st.empty()==1)
break;
while(st.empty()==0)
{
int x = st.top();
st.pop();
int y = st.top();
st.pop();
if(board[y-1][x-1]!='0')
{
board[y-1][x-1] = '0';
answer++;
}
if(board[y-1][x]!='0')
{
board[y-1][x] = '0';
answer++;
}
if(board[y][x-1]!='0')
{
board[y][x-1] = '0';
answer++;
}
if(board[y][x]!='0')
{
board[y][x] = '0';
answer++;
}
}
for(int x=0;x<n;x++)
{
for(int y=m-1;y>=0;y--)
{
if(board[y][x]=='0')
{
for(int z=y-1;z>=0;z--)
{
if(board[z][x]!='0')
{
printf("board[%d][%d]<-board[%d][%d]\n",y,x,z,x);
board[y][x]=board[z][x];
board[z][x]='0';
break;
}
}
}
}
}
}
return answer;
}
'개발 > Coding Test' 카테고리의 다른 글
[프로그래머스 C++] 가장 큰 수 (0) | 2022.06.07 |
---|---|
[프로그래머스 C++ Lv2] 압축 (0) | 2022.06.07 |
[프로그래머스 C++ Lv2] 뉴스 클러스터링 (0) | 2022.06.07 |
[프로그래머스 C++ Lv2] 예상 대진표 (0) | 2022.06.07 |
[프로그래머스 C++ Lv2] 영어 끝말잇기 (0) | 2022.06.07 |
댓글