etyoungsu   1년 전

이해가 안되는 부분은 다음과 같습니다.

37번 째 줄의 int reg_cnt = 10을 int reg_cnt = 1 로 바꾸면 틀립니다.

reg_cnt 의 값에 따라 채점에서 틀렸습니다가 뜨는 %도 달라지는데 왜 그런지 모르겠습니다..

reg_cnt는 각 BFS 실행을 구별하기 위한 변수입니다. 

//

reg_cnt = 1 이여도 일단 주어진 TC 및 게시판에 있는 제가 찾아본 TC는 다 통과하는 것을 확인했습니다.

//

문제는 다음과 같은 로직을 통해 구성했습니다.

//

* arr 배열 : 입력을 저장한 배열

* vis 배열 : 방문 여부 확인 및 0에 대한 BFS 값 저장 배열

* reg 배열 : 각 BFS의 지역 구별을 위한 숫자 저장하는 배열

//

1. arr 배열에서 0이 존재하는 경우 BFS를 적용한 뒤, 이 때 결과로 나온 '이동할 수 있는 칸의 수'를 0이 나온 모든 번지의 vis 배열에 저장합니다.

2. 이 때 지나친 모든 번지의 reg 배열에 각 BFS 구별을 위한 숫자를 저장합니다.

3. arr 배열을 순회하며 입력 1로 들어온 배열 일 때, 상하좌우의 저장된 vis 값을 sum에 더해줍니다.

4. 이 때, 상하좌우에 같은 번지의 BFS가 있는지 확인하고 이 경우 더하지 않습니다.

5. 이를 %10한 값으로 arr 배열을 변경합니다.

//

다음은 1,2를 통해 vis, reg 배열이 바뀌는 예시입니다. (입력으로 들어온 1은 구별을 위해 -1로 arr에 저장했습니다)

preview

reg_cnt가 1로 초기화되면 왜 안되는지 알려주시면 감사하겠습니다!!!!!!

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