반응형
문제출처 : https://www.acmicpc.net/problem/1388
1388번: 바닥 장식
형택이는 건축가이다. 지금 막 형택이는 형택이의 남자 친구 기훈이의 집을 막 완성시켰다. 형택이는 기훈이 방의 바닥 장식을 디자인했고, 이제 몇 개의 나무 판자가 필요한지 궁금해졌다. 나��
www.acmicpc.net
문제풀이) 한개의 나무를 증가 후 '-' 을 만나면 오른쪽으로 '-' 를 만날때까지 색칠 하면서 계속 이동 '|' 을 만나면 아래로 색칠하면서 이동. 색칠 된 곳은 건너뛰면 됨
#include <iostream>
using namespace std;
char floor[110][110];
int visit[110][110];
int n,m;
void f(int y,int x,int dir)
{
if(y>=n || x>=m) return;
if(visit[y][x]) return;
if(dir==0)
{
if(floor[y][x]!='-') return;
}
else
{
if(floor[y][x]!='|') return;
}
visit[y][x]=1;
if(dir==0)
{
f(y,x+1,dir);
}
else
{
f(y+1,x,dir);
}
}
int main()
{
int cnt=0;
cin >>n >> m;
for(int i=0;i<n;i++)
{
for(int j=0;j<m;j++) cin >> floor[i][j];
}
for(int i=0;i<n;i++)
{
for(int j=0;j<m;j++)
{
if(!visit[i][j])
{
cnt++;
if(floor[i][j]=='-') f(i,j,0);
else f(i,j,1);
}
}
}
cout << cnt;
return 0;
}
반응형
'알고리즘 > 백준' 카테고리의 다른 글
백준1418번-K세준수(브론즈1) (2) | 2020.09.11 |
---|---|
백준1402-아무래도이문제는A번난이도인것같다(브론즈1) (0) | 2020.09.10 |
백준1384-메시지(브론즈1) (0) | 2020.09.08 |
백준1359-복권(브론즈1) (0) | 2020.09.07 |
백준1357번-뒤집힌덧셈(브론즈1) (0) | 2020.09.04 |