반응형
🅰 백준 2251. 물통
✏️ 문제 풀이
✏️ 소스코드
package bruteforce;
import java.util.*;
import java.io.*;
public class Main_실버1_2251_손은성 {
static final int max = 201;
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
Queue<int[]> q = new LinkedList<int[]>();
boolean visited[][] = new boolean[max][max];
LinkedList<Integer> ans = new LinkedList<Integer>();
StringTokenizer st = new StringTokenizer(br.readLine());
int A = Integer.parseInt(st.nextToken());
int B = Integer.parseInt(st.nextToken());
int C = Integer.parseInt(st.nextToken());
int push[] = { 0, 0 };
q.add(push);
while (!q.isEmpty()) {
int a = q.peek()[0];
int b = q.peek()[1];
int c = C - a - b;
q.poll();
if (visited[a][b])
continue;
if (a == 0)
ans.add(c);
visited[a][b] = true;
if (a + b <= B) {
q.add(new int[] { 0, a + b });
} else {
q.add(new int[] { a + b - B, B });
}
if (a + c <= C) {
q.add(new int[] { 0, b });
} else {
q.add(new int[] { a + c - C, b });
}
if (b + a <= A) {
q.add(new int[] { a + b, 0 });
} else {
q.add(new int[] { A, b + a - A });
}
if (b + c <= C) {
q.add(new int[] { a, 0 });
} else {
q.add(new int[] { a, b + c - C });
}
if (c + a <= A) {
q.add(new int[] { a + c, b });
} else {
q.add(new int[] { A, b });
}
if (c + b <= B) {
q.add(new int[] { a, b + c });
} else {
q.add(new int[] { a, B });
}
}
Collections.sort(ans);
for (int i = 0; i < ans.size(); i++) {
System.out.print(ans.get(i)+" ");
}
}
}
✅ 후기
반응형
'백준 > 완전탐색' 카테고리의 다른 글
백준 5014. 스타트링크 (0) | 2021.08.26 |
---|---|
백준 9663. N-Queen (0) | 2021.08.26 |
백준 1697. 숨바꼭질 (0) | 2021.08.26 |
백준 1182. 부분수열의 합 (0) | 2021.08.26 |
백준 6603. 로또 (0) | 2021.08.26 |
댓글