#2251. 물통
Problem
Solution
- 첫 시작은 C 물통만 가득 차 있으니 전체 합은 C의 물통이다.
- 물을 옮기는 경우는 총 6경우로 0을 A, 1을 B, 2를 C라고 했을 때 다음과 같은 경우가 존재한다.1 
 2
 30 -> 1, 0 -> 2 
 1 -> 0, 1 -> 2
 2 -> 0, 2 -> 1
- 경우의 수가 중복되지 않도록 표시해주는 배열은 2차원으로도 해결 가능하다. (전체 양은 일정하니 A, B만 알아도 C를 알 수 있기 때문이다.)
- 처음 A, B, C의 부피를 저장한다.
- 시작은 (0, 0)에서 시작하고, ans[C 물의 양]이 true임을 표시해 A가 0일 때 C의 물의양임을 나타낸다.
- BFS 탐색을 시작한다. 각 경우에서 계속해서 나아가는 방식이기에 적합하다. (경우의 수도 많지 않음)
- 물을 옮기는 건 2가지 경우가 존재한다. - from x → to y - x + y ≤ Y
 x + y의 값이 y를 가진 물통의 부피(Y)이하일 때
 x를 다 옮길 수 있으므로 x를 가졌던 물통의 물의 양은 0이 된다.
 y를 가진 물통의 물의 양은 x+y가 된다.
- x + y > Y
 x + y의 값이 Y보다 클 때 x를 다 옮길 수 없으므로
 x를 가졌던 물통의 물의 양은 x + y - Y가된다.
 y를 가졌던 물통의 물의 양은 Y가 된다.
 - check와 A의 물의 양이 0인지 판단하여 BFS 탐색을 한다.
 
- x + y ≤ Y
1 Try
| 1 | 
 | 
