2014년 7월 7일 월요일

2644 촌수계산

x와 y의 촌수를 계산하는 문제이다.
나는 이런 문제를 풀때 재귀적인 방법밖에는 써보지 않았다..
어찌됬든 내가 푼 방법을 말해보자면,

우선 2차원 배열인 a를 선언하고 여기에 가족관계를 담는다.(왼쪽이 부모, 오른쪽이 자식)
그리고 재귀 함수를 호출하여 x부터 시작한다.
이 함수는 해당 좌표와 부모나 자식관계에 있는 모든 사람에게 depth 를 1씩 증가시키고 재귀를 한다.
그러다 해당 좌표가 y가 되면 depth를 출력하고 프로그램을 종료시킨다.(exit)
참고로 재귀를 시키기 전에 자신이 찾아낸 관계를 지워야 한다.
그렇지 않으면 무한루프가 발생하기 때문이다.

이 방법으로 정답은 나왔지만, 스택을 전부 종료하기 위해 exit함수를 사용하는것이 영 꺼림직하다..

소스

댓글 없음:

댓글 쓰기