enekelx1   5년 전

게시판 질문에 있는 반례들을 모두 대입해봤는데 혹시 틀린 반례나 해당 코드에서 틀린 부분을 알려주실수 있으신지요 부탁드립니다!!

blpoms   5년 전

오랫동안 고민해봤지만 코드가 뭐가 잘못됬는지 모르겠네요 ㅠㅠ(사실 제가 python 밖에 모름,,,)

그래서 제가 푼 방법으로 조언(?)을 드리려고 합니다.

  1. 39 ~ 54줄에서 2중 loop인데 단일 loop로 바꿀 수 있을거에요
  2. 단일 loop로 바꾸면 dfs 함수도 바뀌어야 되요

43 ~ 49줄에서 혹시 하나의 i에 대해 여러번 count +1 되지 않았을까 라는 추측을 해봅니다,,,

그리고 40 ~ 53줄에서 방문하지 않으면 적어도 count + 1 되네요

굳이 flag가 필요한가요??

도움이 되지 못했다면 죄송함니다,,ㅜ_ㅜ

adfsfsf   5년 전

flag가 필요 없고요, blpoms님께서 언급하신 것처럼 43~49번 줄에서 여러번 count가 될 수 있습니다. 아래와 같은 예시가 가능하겠군요.

3 2

1 2

1 3

이렇게 되면 1,2에서 한 번 count, 2에서 이어지는 곳이 없으므로 43번 줄로 돌아간 후 1,3에서 다시 한 번 count되어서 답은 1이지만 출력은 2가 나옵니다.

adfsfsf   5년 전

구체적으로 적자면, flag를 지우시고, 43~49번 줄에서는 count를 하지 말아야 할 것 같습니다.

adfsfsf   5년 전

제가 적은대로 flag를 없애고 count를 안 하니 통과되었습니다. count는 51번 줄의 조건을 지우기만 하면 됩니다. 아래는 수정된 코드입니다. 다만, Java11에서는 메모리초과가 일어납니다.

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