인프런 커뮤니티 질문&답변

sol4854님의 프로필 이미지
sol4854

작성한 질문수

10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트

3-J

3-J 질문드립니다.

작성

·

1K

0

안녕하세요 큰돌님!

 

3-J번 Queue를 두번사용하지 않고 풀어봤는데요.

단순히 0일경우 visited를 카운트 안하고

1일경우에만 카운트하여 풀이를 해봤습니다.

 

예제는 전부 맞는데 제출하니 틀렸다고 나옵니다.

어떤 부분을 놓친걸까요?

또 어떤 반례가 있을까요?

 

http://boj.kr/b6ecc8c40aa24dee8f2c8dc46e5b2486

답변 1

0

큰돌님의 프로필 이미지
큰돌
지식공유자

안녕하세요 sol님 ㅎㅎ

이런 아이디어를 생각하니 놀라운데요.

하지만 이런 반례가 있습니다.

2 5
2 5 1 1 
#0000 
0001*

정답 : 1, sol님 코드 : 2

 

이게 왜그러냐면요.

sol님은 오른쪽 x부터 시작해 시계방향으로 탐색을 하죠?

자 * 왼쪽에 있는 visited = 2 탐색하고!! 그 위에 있는 0은 visited = 1으로 탐색이 일어나죠! 그러나 이제부터 문제가 시작되는데요. 0부터 시작해 "연속적으로" 탐색이 이뤄져야 하는데 1부터 탐색이 일어나기 때문에 결과적으로 1부터 시작한게 먼저 #에 도착하게 되고 그런 답이 나오게 되는 것이죠.

 

감사합니다.

sol4854님의 프로필 이미지
sol4854
질문자

이런 반례가 있겠군요...

혼자 공부했더라면 찾는데 오래걸렸을거 같습니다!

항상 좋은 강의와 피드백주셔서 감사합니다!!

 

끝까지 화이팅 하겠습니다

큰돌님도 화이팅하세요~!

sol4854님의 프로필 이미지
sol4854

작성한 질문수

질문하기