2468번 - 안전 영역
11 번쨰 줄의 visited 와 39 번쨰 줄의 visited는 서로 다른 변수로 인식됩니다. 같은 이름의 전역 변수와 지역 변수가 있을 경우 지역 변수가 우선시 됩니다.
따라서 grid_cnt 함수 내에서 max가 0으로 주어진 경우 44번쨰 줄의 조건문이 모두 참으로 인식되어 5*5 = 25 의 출력을 가지게 됩니다.
해결 방법으로는 grid_cnt 함수 내에서 visited 를 선언 하는 것이 아닌 false로 값을 초기화 해주는 방식으로 39번 쨰 줄을
visited = vector<vector<bool>>(n, vector<bool>(n, false));
변경하면 올바른 출력을 가지게 됩니다.
댓글을 작성하려면 로그인해야 합니다.
jeongdnjs 1년 전 0
안녕하세요.
저는 안전한 지역의 덩어리 개수를 카운트하는 코드를 작성했습니다.
하지만 예시 입력을 해보니 25가 출력되었습니다.
출력값을 보니 grid에서 안전한 칸을 모두 카운트하는 것으로 보였습니다.
이와 거의 동일하게 알고리즘을 활용한 다른 코드는 잘 작동하던군요,,
해당 코드의 문제점은 무엇입니까?