그래프의 표현 예제 - 4
문제 분석
손으로 풀어보기
슈도코드
send, receive(6가지 경우를 탐색하기 위한 리스트)
now(a, b, c의 값 저장)
visit(방문 기록 리스트)
ans(정답 리스트)
BFS:
큐에 출발 노드 더하기(A와 B가 0인 상태이므로 0, 0노드에서 시작)
visit 방문 기록
ans 현재 C값 체크
while 큐가 빌 때까지:
큐에서 노드 데이터 가져오기
데이터를 이용해 a, b, c값 초기화
for 6가지 케이스 반복:
받는 물통에 보내려는 물통의 값 더하기
보내려는 물통의 값을 0으로 업데이트
if 받는 물통이 넘치면:
넘치는 만큼 보내는 물통에 다시 넣어 주고 받는 물통은 이 물통의 최댓값으로 저장
if 현재 노드의 연결 노드 중 미 방문 노드:
큐 데이터 삽입
visit 방문 처리
if 1번째 물통이 비어 있으면:
3번째 물통의 물의 양을 ans에 기록
BFS 실행
for ans 탐색:
true인 index 출력코드 구현 - 파이썬
코드 구현 - 자바
Last updated