less than 1 minute read


layout: post title: Baekjoon2251 —

물의 양 구하기

Step1: Problem Analysis
-‘A’,’B’,’C’의 상태가 하나의 노드이며 물을 붓는 동작이 간선.
-조건 중요! 한 물통이 비거나 다른 한 물통이 가득 찰 때까지
-입력:’A’,’B’,’C’(1번 물통, 2번 물통, 3번 물통의 용량)이 입력됨.
-출력: 결과적으로 나올 수 있는 C의 용량 출력
Solution
-BFS 탐색
결국 물을 부을 수 있는 경우의 수는 A->B, A->C, B->A, B->C,C->A,C->B이므로 이 6가지 경우가 있고 결국 연속적인 경우에 따라 물의 용량이 결정이 되기 때문에
이를 큐에 추가하면서 겹치는 A,B,C용량의 경우가 있을 경우 큐에 추가히지 않음.
-물을 붓는 동작
일반적인 경우: 물을 붓는 물통은 0을 저장한 후 받는 물통은 물통의 양으로 값을 설정.
받는 물통의 용량에 비해 물이 넘칠 경우: 초과하는 값 만큼 보내는 물통에 다시 담음.
-답 구하기
큐에 노드 추가시 1번째 물통의 용량이 0이면 3번째 물통의 용량을 정답 배열에 저장.
정답 배열의 값을 오름차순 정렬한다면 정답이 나오지 않을까?

Step2: Solve Manually

Step3: Pseudo Code

Step4: Implement Code

Updated: