1. 유형
브루트포스
DFS
백트래킹
2. 풀이
DFS를 쓰는 문제였습니다.
처음에 한글 이해하는게 조금 힘들었습니다.
2-1. 설계
2-2. 코드 풀이
3. 코드
import java.io.*;
import java.util.*;
public class Main {
static int N, answer;
static int arr[][];
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
N = stoi(st.nextToken());
arr = new int[N][2];
answer = 0;
for (int i = 0; i < N; i++) {
st = new StringTokenizer(br.readLine());
int a = stoi(st.nextToken());
int b = stoi(st.nextToken());
arr[i][0] = a;
arr[i][1] = b;
}
per(0, 0);
System.out.println(answer);
}
static void per(int level, int sum) {
if(level==N) return;
for (int i = 0; i < N; i++) {
if(i == level || arr[i][0]<=0) continue;
if(arr[level][0]<=0) {
per(level+1, sum);
return;
}
arr[level][0] -= arr[i][1];
arr[i][0] -= arr[level][1];
int cnt = 0;
if (arr[level][0] <= 0)
cnt++;
if (arr[i][0] <= 0)
cnt++;
answer = Math.max(answer, sum+cnt);
per(level + 1, sum + cnt);
arr[level][0] += arr[i][1];
arr[i][0] += arr[level][1];
}
}
static int stoi(String s) {
return Integer.valueOf(s);
}
}
'알고리즘 > 백준' 카테고리의 다른 글
백준 16439 - 치킨치킨치킨 (0) | 2021.11.10 |
---|---|
백준 15970 - 화살표 그리기 (0) | 2021.11.07 |
백준 16953 - A -> B (0) | 2021.11.02 |
백준 5883 - 아이폰 9S (0) | 2021.10.31 |
백준 17393 - 다이나믹롤러 (0) | 2021.10.31 |