16932번 - 모양 만들기
0을 1로 바꾸기 위해서
맞닿아있는 한 부분이라도 1이라면 그 0의 좌표는 큐에 넣었습니다.
그리고 나선
맵에 대해서
bfs를 통해 연결된 구간의 coloring 을 하였습니다.
coloring된 구간의 경우 100,101,102이렇게 바꿈으로써 영역을 구분하였고, coloring number와 이게 몇개 있는지의 데이터를 result배열에 넣었습니다.
마지막으로 0을 갖고있는 좌표들을 갖고있는 큐를 pop하면서
맞닿아있는 1의 coloring number를 참조하였고, 그 coloring 된의 갯수를 더하고 최대값을 갱신하는 식으로 문제를풀었습니다.
더이상 어떻게 시간을 줄여야할지 잘 모르겠습니다 ㅠㅠ
도움 요청합니다 ㅠㅠ
해결했습니다.
하나씩 0을 1로 변화하는 과정에서 확인한 블록의 visited 처리를 해주기 위해 선언한 11번째줄의 checked와
92번째줄의 초기화 과정에서 시간초과가 났습니다. :)
댓글을 작성하려면 로그인해야 합니다.
blackbbean 4년 전
0을 1로 바꾸기 위해서
맞닿아있는 한 부분이라도 1이라면 그 0의 좌표는 큐에 넣었습니다.
그리고 나선
맵에 대해서
bfs를 통해 연결된 구간의 coloring 을 하였습니다.
coloring된 구간의 경우 100,101,102이렇게 바꿈으로써 영역을 구분하였고, coloring number와 이게 몇개 있는지의 데이터를 result배열에 넣었습니다.
마지막으로 0을 갖고있는 좌표들을 갖고있는 큐를 pop하면서
맞닿아있는 1의 coloring number를 참조하였고, 그 coloring 된의 갯수를 더하고 최대값을 갱신하는 식으로 문제를풀었습니다.
더이상 어떻게 시간을 줄여야할지 잘 모르겠습니다 ㅠㅠ
도움 요청합니다 ㅠㅠ