알고리즘 문제 풀이/1DP_과제(~180615)

171123_2573_빙산

2017. 11. 23. 03:05

#include <cstdio> using namespace std;
int map_melting[302][302];
int map_origin[302][302];
bool visit[302][302];
int dx[4]={1,-1,0,0};
int dy[4]={0,0,1,-1};
void dfs(int y, int x)
{
visit[y][x]=1;
for(int i=0; i<4; i++)
{
int ny=y+dy[i];
int nx=x+dx[i];
if(map_origin[ny][nx] != 0 && !visit[ny][nx])
dfs(ny, nx);
}
}
int main()
{
int N, M;
scanf("%d %d",&N,&M);
/*input*/
for(int i=1; i<=N; i++)
for(int j=1; j<=M; j++)
{scanf("%d",&map_origin[i][j]);}
int land=0;
int year=0;
while(1)
{
for(int i=2; i<N; i++)
for(int j=2; j<M; j++)
visit[i][j]=0;
land=0;
bool chk=0;
for(int i=2; i<N; i++)
for(int j=2; j<M; j++)
{
if(map_origin[i][j] != 0 && !visit[i][j])
{
if(land==1)
{printf("%d",year); return 0;}
dfs(i,j); land++;
}
if(map_origin[i][j]>0 && !chk) chk=1;
}
if(!chk) {printf("0"); return 0;}
/*melting_iceburg*/
for(int i=1; i<N; i++)
{
for(int j=1; j<M; j++)
{
if(!map_origin[i][j]) continue;
int cnt=0;
if(!map_origin[i][j-1]) cnt++;
if(!map_origin[i][j+1]) cnt++;
if(!map_origin[i-1][j]) cnt++;
if(!map_origin[i+1][j])cnt++;
map_melting[i][j]= map_origin[i][j]-cnt;
if(map_melting[i][j]<0) map_melting[i][j]=0;
}
} /*melting_iceburg*/
for(int i=1; i<=N; i++)
for(int j=1; j<=M; j++)
{ map_origin[i][j]=map_melting[i][j];}
year++;
}
}



마지막에 조건 하나를 놓쳐서 계속 실패 

만일 전부 다 녹을 때까지 두 덩어리 이상으로 분리되지 않으면 프로그램은 0을 출력한다.

저작자표시 비영리 (새창열림)

'알고리즘 문제 풀이 > 1DP_과제(~180615)' 카테고리의 다른 글

171125_1157_단어 공부  (0) 2017.11.25
171124_1952_수영장  (0) 2017.11.24
171123_1222_계산기1  (0) 2017.11.23
171122_11654_아스키코드  (0) 2017.11.22
171122_1152_문자의 개수  (0) 2017.11.22
'알고리즘 문제 풀이/1DP_과제(~180615)' 카테고리의 다른 글
  • 171125_1157_단어 공부
  • 171124_1952_수영장
  • 171123_1222_계산기1
  • 171122_11654_아스키코드
bong sue
bong sue
취업 준비하면서 공부하던 블로그인데, 이제 나이가 먹어가니까 사는 준비도 해야해서 이거저거 씁니다.
bong sue
수봉수봉 신변잡기
bong sue
전체
오늘
어제
  • 분류 전체보기 (268)
    • 알고리즘 문제 풀이 (264)
      • AtCoder 문제 풀기 (4)
      • 코딩 테스트 대비(~211220) (14)
      • 1DP_과제(~180615) (246)
    • Engineering (1)
      • 디자인패턴 (0)
      • 프로그래밍 언어론 (1)
    • 독서 (0)
      • 고전 읽기 프로젝트 (0)
      • 재테크 (0)
    • 내 집 마련 (단기 프로젝트) (0)

블로그 메뉴

  • 홈
  • 태그
  • 미디어로그
  • 위치로그
  • 방명록

공지사항

인기 글

태그

  • Olympiad
  • 문자열처리
  • 구현
  • 알고스팟
  • bruteforce
  • 삼성
  • 수학
  • dfs
  • 시뮬레이션
  • 백준저지
  • 브루트 포스
  • sort
  • C++
  • dp
  • 브루트포스
  • BOJ
  • 문자열
  • 그리디알고리즘
  • Sea
  • BFS
  • 탐색
  • ABC
  • 042
  • 정렬
  • 동적계획
  • C언어
  • 백준
  • AtCoder
  • 탐욕알고리즘
  • 1032

최근 댓글

최근 글

hELLO · Designed By 정상우.
bong sue
171123_2573_빙산
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.