phk707kr   7년 전

1은 팀을 이룰수 없는 사람을, 2는 누군가와는 팀을 이룬사람을, 3은 자기자신과 팀인 사람을 의미하며,
0은 아직 모르는 사람을 의미합니다. 이렇게 4분류를 해놓고 큐 비슷한 자료구조를 이용해서 방문한 순서대로 사람들을 담아놓고
미리 검사를 시작하기 전에 자기 자신과의 팀인사람을 먼저 골라 3이라고 표시를 합니다.

예를들어 예제인 3 1 3 7 3 4 6이라면, 1번사람에 대해서 큐에 1, 3을 담습니다.
그리고 검사문을 진행하면서 올려둔 값인 front (다음 사람을 참조하게 해주는 큐의 포인터정도로 생각해주세요)
의 값전까지의 값들은 도달한 값인 3이 자기자신과의 팀인 사람이므로 모두 1의 표시를 해줍니다.

이런식으로 1~n까지 검사하게 했고,
미리 표시를 해두면서 들어간다면, 표시가 이미 된 사람은 큐에 넣어서 확인할 이유도 없기 때문에
예외도 잘 처리되는거 같은데요... 디버깅으로 Step by Step으로 돌리면서 확인해봤는데
제가 만든 예제나, 문제 예제는 잘 동작하는거 같습니다.

틀린점이 뭐가 있을까요 ㅠㅠ 고수님들 답변 부탁드립니다.

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