mycool0905   5년 전

제 코드를 예를 들어서 간략하게 설명할게요

5

1 1 0 0 1

1 0 0 0 0

0 0 0 0 0

1 0 0 0 0

1 0 0 1 1

이렇게 입력을 받았으면

devide_field() 함수로

2 2 0 0 3

2 0 0 0 0

0 0 0 0 0

4 0 0 0 0

4 0 0 5 5

field가 이렇게 되고,

BFS의 시작점을 저장해놓는 큐인 store는 

(0,1), (0,4), (1, 0), (3, 0), (4,0), (4,3), (4,4) 이렇게 됩니다.


그 때, 시작점으로 부터 땅 번호로 늘어가면서 BFS_count에는 다리의 길이를 하나씩 쌓습니다.

그러다가, 0이 아니고 자신의 땅 번호와 다른 땅 번호를 만나면, 만나는 땅끼리의 BFS_count를 더하여 결과값을 구했습니다.


위의 예에서는 field가 아래와 같이 됐을 때, 바로 return을 하여 답이 1이 나옵니다.

2 2 2 3 3

2 2 0 0 3

2 0 0 0 0

4 0 0 0 0

4 0 0 5 5

혹시나, 하나의 대륙만 존재할 때를 대비해서 return 0까지 추가했습니다.


100%에서 틀렸습니다 떠서 멘붕먹었습니다..

조언 부탁드립니다...ㅠ

댓글을 작성하려면 로그인해야 합니다.